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?

                      Christian Cage

                      How to properly install USB display driver for Fresco Logic FL2000DX on Ubuntu?