Importing CSV file to create point layer

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;







up vote
1
down vote

favorite












enter image description hereI have a CSV file with following fields:



  • Nodename

  • Nodeid

  • Latitude

  • Longtitude

  • Elevation

I am using Python console in QGIS to automate this. How should I write so that point with latitude, longtitude and elevation are maked as point layer?
I have tried with below code, but I am getting error.



uri = "/home/priti/Desktop/MTP work/nodeinput.csv?
type=csv&xField=Longtitude
&yField=Lattitude
&spatialIndex=no&subsetIndex=no&watchFile=no"

vlayer = QgsVectorLayer(uri, 'Nodes', "delimitedtext")









share|improve this question























  • What error message do you get?
    – BERA
    Aug 21 at 10:10










  • SyntaxError: EOL while scanning string literal
    – ps1
    Aug 21 at 10:13










  • If you screenshot is showing what you are doing of course it will not work. You need to change path to file+filename and the name of lat and long field
    – BERA
    Aug 21 at 11:04










  • I didnt get you .
    – ps1
    Aug 21 at 11:06










  • I am woking on Ubuntu system . There is no such C drive here i think
    – ps1
    Aug 21 at 11:08
















up vote
1
down vote

favorite












enter image description hereI have a CSV file with following fields:



  • Nodename

  • Nodeid

  • Latitude

  • Longtitude

  • Elevation

I am using Python console in QGIS to automate this. How should I write so that point with latitude, longtitude and elevation are maked as point layer?
I have tried with below code, but I am getting error.



uri = "/home/priti/Desktop/MTP work/nodeinput.csv?
type=csv&xField=Longtitude
&yField=Lattitude
&spatialIndex=no&subsetIndex=no&watchFile=no"

vlayer = QgsVectorLayer(uri, 'Nodes', "delimitedtext")









share|improve this question























  • What error message do you get?
    – BERA
    Aug 21 at 10:10










  • SyntaxError: EOL while scanning string literal
    – ps1
    Aug 21 at 10:13










  • If you screenshot is showing what you are doing of course it will not work. You need to change path to file+filename and the name of lat and long field
    – BERA
    Aug 21 at 11:04










  • I didnt get you .
    – ps1
    Aug 21 at 11:06










  • I am woking on Ubuntu system . There is no such C drive here i think
    – ps1
    Aug 21 at 11:08












up vote
1
down vote

favorite









up vote
1
down vote

favorite











enter image description hereI have a CSV file with following fields:



  • Nodename

  • Nodeid

  • Latitude

  • Longtitude

  • Elevation

I am using Python console in QGIS to automate this. How should I write so that point with latitude, longtitude and elevation are maked as point layer?
I have tried with below code, but I am getting error.



uri = "/home/priti/Desktop/MTP work/nodeinput.csv?
type=csv&xField=Longtitude
&yField=Lattitude
&spatialIndex=no&subsetIndex=no&watchFile=no"

vlayer = QgsVectorLayer(uri, 'Nodes', "delimitedtext")









share|improve this question















enter image description hereI have a CSV file with following fields:



  • Nodename

  • Nodeid

  • Latitude

  • Longtitude

  • Elevation

I am using Python console in QGIS to automate this. How should I write so that point with latitude, longtitude and elevation are maked as point layer?
I have tried with below code, but I am getting error.



uri = "/home/priti/Desktop/MTP work/nodeinput.csv?
type=csv&xField=Longtitude
&yField=Lattitude
&spatialIndex=no&subsetIndex=no&watchFile=no"

vlayer = QgsVectorLayer(uri, 'Nodes', "delimitedtext")






qgis python pyqgis csv






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Aug 21 at 11:01

























asked Aug 21 at 9:42









ps1

1319




1319











  • What error message do you get?
    – BERA
    Aug 21 at 10:10










  • SyntaxError: EOL while scanning string literal
    – ps1
    Aug 21 at 10:13










  • If you screenshot is showing what you are doing of course it will not work. You need to change path to file+filename and the name of lat and long field
    – BERA
    Aug 21 at 11:04










  • I didnt get you .
    – ps1
    Aug 21 at 11:06










  • I am woking on Ubuntu system . There is no such C drive here i think
    – ps1
    Aug 21 at 11:08
















  • What error message do you get?
    – BERA
    Aug 21 at 10:10










  • SyntaxError: EOL while scanning string literal
    – ps1
    Aug 21 at 10:13










  • If you screenshot is showing what you are doing of course it will not work. You need to change path to file+filename and the name of lat and long field
    – BERA
    Aug 21 at 11:04










  • I didnt get you .
    – ps1
    Aug 21 at 11:06










  • I am woking on Ubuntu system . There is no such C drive here i think
    – ps1
    Aug 21 at 11:08















What error message do you get?
– BERA
Aug 21 at 10:10




What error message do you get?
– BERA
Aug 21 at 10:10












SyntaxError: EOL while scanning string literal
– ps1
Aug 21 at 10:13




SyntaxError: EOL while scanning string literal
– ps1
Aug 21 at 10:13












If you screenshot is showing what you are doing of course it will not work. You need to change path to file+filename and the name of lat and long field
– BERA
Aug 21 at 11:04




If you screenshot is showing what you are doing of course it will not work. You need to change path to file+filename and the name of lat and long field
– BERA
Aug 21 at 11:04












I didnt get you .
– ps1
Aug 21 at 11:06




I didnt get you .
– ps1
Aug 21 at 11:06












I am woking on Ubuntu system . There is no such C drive here i think
– ps1
Aug 21 at 11:08




I am woking on Ubuntu system . There is no such C drive here i think
– ps1
Aug 21 at 11:08










3 Answers
3






active

oldest

votes

















up vote
3
down vote



accepted










Try:



from qgis.core import QgsMapLayerRegistry #Qgis2
#from qgis.core import QgsProject #QGIS3

uri = "file:///C:/Test/points.csv?delimiter=,&crs=epsg:4326&xField=Longitude&yField=Latitude"
vlayer = QgsVectorLayer(uri,'Points','delimitedtext')

QgsMapLayerRegistry.instance().addMapLayer(vlayer) #Qgis2
#QgsProject.instance().addMapLayer(vlayer) #QGIS3


enter image description here






share|improve this answer






















  • QgsProject' object has no attribute 'addMapLayer' Getting this Error
    – ps1
    Aug 21 at 10:22










  • Yeah This time there was no error, but i cant see points
    – ps1
    Aug 21 at 10:30











  • any idea ? why i cant see points :(
    – ps1
    Aug 21 at 10:37










  • Do you get the 'Points' layer in Layers tree? Is the attribute table empty?
    – BERA
    Aug 21 at 10:39










  • My Layer Panel is empty
    – ps1
    Aug 21 at 10:41

















up vote
1
down vote













You say you are trying with the python console, but if you want to try with stand alone python, this does the trick:



import fiona
from shapely.geometry import Point, mapping
import csv


driver = 'ESRI Shapefile'
schema = 'geometry': 'Point', 'properties' : 'Nodename': 'str', 'Nodeid': 'int'
pointlayer = fiona.open("test.shp", 'w', driver=driver, schema=schema)
with open("test.csv") as f:
reader = csv.reader(f)
next(reader) # skip header
for row in reader:
geom = Point(int(row[2]), int(row[3]), int(row[4])) # Considering the order of elements that you gave
pointlayer.write('geometry': mapping(geom), 'properties': 'Nodename': row[0], 'Nodeid': row[1])

pointlayer.close()





share|improve this answer



























    up vote
    0
    down vote













    Skip QGIS and go directly to OGR2OGR.



    https://www.gdal.org/drv_csv.html
    use -lco X_POSSIBLE_NAMES="" -lco Y_POSSIBLE_NAMES=



    ogr2ogr airports.shp airports.csv -dialect sqlite -sql "SELECT MakePoint(CAST(longitude as REAL), CAST(latitude as REAL), 4326) Geometry, * FROM airports"






    share|improve this answer




















      Your Answer







      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "79"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      convertImagesToLinks: false,
      noModals: false,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













       

      draft saved


      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f293469%2fimporting-csv-file-to-create-point-layer%23new-answer', 'question_page');

      );

      Post as a guest






























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      3
      down vote



      accepted










      Try:



      from qgis.core import QgsMapLayerRegistry #Qgis2
      #from qgis.core import QgsProject #QGIS3

      uri = "file:///C:/Test/points.csv?delimiter=,&crs=epsg:4326&xField=Longitude&yField=Latitude"
      vlayer = QgsVectorLayer(uri,'Points','delimitedtext')

      QgsMapLayerRegistry.instance().addMapLayer(vlayer) #Qgis2
      #QgsProject.instance().addMapLayer(vlayer) #QGIS3


      enter image description here






      share|improve this answer






















      • QgsProject' object has no attribute 'addMapLayer' Getting this Error
        – ps1
        Aug 21 at 10:22










      • Yeah This time there was no error, but i cant see points
        – ps1
        Aug 21 at 10:30











      • any idea ? why i cant see points :(
        – ps1
        Aug 21 at 10:37










      • Do you get the 'Points' layer in Layers tree? Is the attribute table empty?
        – BERA
        Aug 21 at 10:39










      • My Layer Panel is empty
        – ps1
        Aug 21 at 10:41














      up vote
      3
      down vote



      accepted










      Try:



      from qgis.core import QgsMapLayerRegistry #Qgis2
      #from qgis.core import QgsProject #QGIS3

      uri = "file:///C:/Test/points.csv?delimiter=,&crs=epsg:4326&xField=Longitude&yField=Latitude"
      vlayer = QgsVectorLayer(uri,'Points','delimitedtext')

      QgsMapLayerRegistry.instance().addMapLayer(vlayer) #Qgis2
      #QgsProject.instance().addMapLayer(vlayer) #QGIS3


      enter image description here






      share|improve this answer






















      • QgsProject' object has no attribute 'addMapLayer' Getting this Error
        – ps1
        Aug 21 at 10:22










      • Yeah This time there was no error, but i cant see points
        – ps1
        Aug 21 at 10:30











      • any idea ? why i cant see points :(
        – ps1
        Aug 21 at 10:37










      • Do you get the 'Points' layer in Layers tree? Is the attribute table empty?
        – BERA
        Aug 21 at 10:39










      • My Layer Panel is empty
        – ps1
        Aug 21 at 10:41












      up vote
      3
      down vote



      accepted







      up vote
      3
      down vote



      accepted






      Try:



      from qgis.core import QgsMapLayerRegistry #Qgis2
      #from qgis.core import QgsProject #QGIS3

      uri = "file:///C:/Test/points.csv?delimiter=,&crs=epsg:4326&xField=Longitude&yField=Latitude"
      vlayer = QgsVectorLayer(uri,'Points','delimitedtext')

      QgsMapLayerRegistry.instance().addMapLayer(vlayer) #Qgis2
      #QgsProject.instance().addMapLayer(vlayer) #QGIS3


      enter image description here






      share|improve this answer














      Try:



      from qgis.core import QgsMapLayerRegistry #Qgis2
      #from qgis.core import QgsProject #QGIS3

      uri = "file:///C:/Test/points.csv?delimiter=,&crs=epsg:4326&xField=Longitude&yField=Latitude"
      vlayer = QgsVectorLayer(uri,'Points','delimitedtext')

      QgsMapLayerRegistry.instance().addMapLayer(vlayer) #Qgis2
      #QgsProject.instance().addMapLayer(vlayer) #QGIS3


      enter image description here







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Aug 21 at 10:32

























      answered Aug 21 at 10:20









      BERA

      11.7k41537




      11.7k41537











      • QgsProject' object has no attribute 'addMapLayer' Getting this Error
        – ps1
        Aug 21 at 10:22










      • Yeah This time there was no error, but i cant see points
        – ps1
        Aug 21 at 10:30











      • any idea ? why i cant see points :(
        – ps1
        Aug 21 at 10:37










      • Do you get the 'Points' layer in Layers tree? Is the attribute table empty?
        – BERA
        Aug 21 at 10:39










      • My Layer Panel is empty
        – ps1
        Aug 21 at 10:41
















      • QgsProject' object has no attribute 'addMapLayer' Getting this Error
        – ps1
        Aug 21 at 10:22










      • Yeah This time there was no error, but i cant see points
        – ps1
        Aug 21 at 10:30











      • any idea ? why i cant see points :(
        – ps1
        Aug 21 at 10:37










      • Do you get the 'Points' layer in Layers tree? Is the attribute table empty?
        – BERA
        Aug 21 at 10:39










      • My Layer Panel is empty
        – ps1
        Aug 21 at 10:41















      QgsProject' object has no attribute 'addMapLayer' Getting this Error
      – ps1
      Aug 21 at 10:22




      QgsProject' object has no attribute 'addMapLayer' Getting this Error
      – ps1
      Aug 21 at 10:22












      Yeah This time there was no error, but i cant see points
      – ps1
      Aug 21 at 10:30





      Yeah This time there was no error, but i cant see points
      – ps1
      Aug 21 at 10:30













      any idea ? why i cant see points :(
      – ps1
      Aug 21 at 10:37




      any idea ? why i cant see points :(
      – ps1
      Aug 21 at 10:37












      Do you get the 'Points' layer in Layers tree? Is the attribute table empty?
      – BERA
      Aug 21 at 10:39




      Do you get the 'Points' layer in Layers tree? Is the attribute table empty?
      – BERA
      Aug 21 at 10:39












      My Layer Panel is empty
      – ps1
      Aug 21 at 10:41




      My Layer Panel is empty
      – ps1
      Aug 21 at 10:41












      up vote
      1
      down vote













      You say you are trying with the python console, but if you want to try with stand alone python, this does the trick:



      import fiona
      from shapely.geometry import Point, mapping
      import csv


      driver = 'ESRI Shapefile'
      schema = 'geometry': 'Point', 'properties' : 'Nodename': 'str', 'Nodeid': 'int'
      pointlayer = fiona.open("test.shp", 'w', driver=driver, schema=schema)
      with open("test.csv") as f:
      reader = csv.reader(f)
      next(reader) # skip header
      for row in reader:
      geom = Point(int(row[2]), int(row[3]), int(row[4])) # Considering the order of elements that you gave
      pointlayer.write('geometry': mapping(geom), 'properties': 'Nodename': row[0], 'Nodeid': row[1])

      pointlayer.close()





      share|improve this answer
























        up vote
        1
        down vote













        You say you are trying with the python console, but if you want to try with stand alone python, this does the trick:



        import fiona
        from shapely.geometry import Point, mapping
        import csv


        driver = 'ESRI Shapefile'
        schema = 'geometry': 'Point', 'properties' : 'Nodename': 'str', 'Nodeid': 'int'
        pointlayer = fiona.open("test.shp", 'w', driver=driver, schema=schema)
        with open("test.csv") as f:
        reader = csv.reader(f)
        next(reader) # skip header
        for row in reader:
        geom = Point(int(row[2]), int(row[3]), int(row[4])) # Considering the order of elements that you gave
        pointlayer.write('geometry': mapping(geom), 'properties': 'Nodename': row[0], 'Nodeid': row[1])

        pointlayer.close()





        share|improve this answer






















          up vote
          1
          down vote










          up vote
          1
          down vote









          You say you are trying with the python console, but if you want to try with stand alone python, this does the trick:



          import fiona
          from shapely.geometry import Point, mapping
          import csv


          driver = 'ESRI Shapefile'
          schema = 'geometry': 'Point', 'properties' : 'Nodename': 'str', 'Nodeid': 'int'
          pointlayer = fiona.open("test.shp", 'w', driver=driver, schema=schema)
          with open("test.csv") as f:
          reader = csv.reader(f)
          next(reader) # skip header
          for row in reader:
          geom = Point(int(row[2]), int(row[3]), int(row[4])) # Considering the order of elements that you gave
          pointlayer.write('geometry': mapping(geom), 'properties': 'Nodename': row[0], 'Nodeid': row[1])

          pointlayer.close()





          share|improve this answer












          You say you are trying with the python console, but if you want to try with stand alone python, this does the trick:



          import fiona
          from shapely.geometry import Point, mapping
          import csv


          driver = 'ESRI Shapefile'
          schema = 'geometry': 'Point', 'properties' : 'Nodename': 'str', 'Nodeid': 'int'
          pointlayer = fiona.open("test.shp", 'w', driver=driver, schema=schema)
          with open("test.csv") as f:
          reader = csv.reader(f)
          next(reader) # skip header
          for row in reader:
          geom = Point(int(row[2]), int(row[3]), int(row[4])) # Considering the order of elements that you gave
          pointlayer.write('geometry': mapping(geom), 'properties': 'Nodename': row[0], 'Nodeid': row[1])

          pointlayer.close()






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Aug 21 at 10:24









          ImanolUr

          19212




          19212




















              up vote
              0
              down vote













              Skip QGIS and go directly to OGR2OGR.



              https://www.gdal.org/drv_csv.html
              use -lco X_POSSIBLE_NAMES="" -lco Y_POSSIBLE_NAMES=



              ogr2ogr airports.shp airports.csv -dialect sqlite -sql "SELECT MakePoint(CAST(longitude as REAL), CAST(latitude as REAL), 4326) Geometry, * FROM airports"






              share|improve this answer
























                up vote
                0
                down vote













                Skip QGIS and go directly to OGR2OGR.



                https://www.gdal.org/drv_csv.html
                use -lco X_POSSIBLE_NAMES="" -lco Y_POSSIBLE_NAMES=



                ogr2ogr airports.shp airports.csv -dialect sqlite -sql "SELECT MakePoint(CAST(longitude as REAL), CAST(latitude as REAL), 4326) Geometry, * FROM airports"






                share|improve this answer






















                  up vote
                  0
                  down vote










                  up vote
                  0
                  down vote









                  Skip QGIS and go directly to OGR2OGR.



                  https://www.gdal.org/drv_csv.html
                  use -lco X_POSSIBLE_NAMES="" -lco Y_POSSIBLE_NAMES=



                  ogr2ogr airports.shp airports.csv -dialect sqlite -sql "SELECT MakePoint(CAST(longitude as REAL), CAST(latitude as REAL), 4326) Geometry, * FROM airports"






                  share|improve this answer












                  Skip QGIS and go directly to OGR2OGR.



                  https://www.gdal.org/drv_csv.html
                  use -lco X_POSSIBLE_NAMES="" -lco Y_POSSIBLE_NAMES=



                  ogr2ogr airports.shp airports.csv -dialect sqlite -sql "SELECT MakePoint(CAST(longitude as REAL), CAST(latitude as REAL), 4326) Geometry, * FROM airports"







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Aug 21 at 15:08









                  Geospatial Engineer

                  56014




                  56014



























                       

                      draft saved


                      draft discarded















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f293469%2fimporting-csv-file-to-create-point-layer%23new-answer', 'question_page');

                      );

                      Post as a guest













































































                      Popular posts from this blog

                      How to check contact read email or not when send email to Individual?

                      Bahrain

                      Postfix configuration issue with fips on centos 7; mailgun relay