User Tools

Site Tools


osm_qgis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
osm_qgis [2023/03/04 15:38] bushwalkingosm_qgis [2023/12/11 09:20] (current) – osmconf changes bushwalking
Line 1: Line 1:
 +====== Mapping with OSM Data in QGIS ======
 +
 This topic builds on the [[nsw_lidar|Mapping from NSW Lidar with QGIS]] tutorials, though the data can also be used standalone. This topic builds on the [[nsw_lidar|Mapping from NSW Lidar with QGIS]] tutorials, though the data can also be used standalone.
  
Line 5: Line 7:
 There's a few steps to get going. There's a few steps to get going.
  
-====== Download raw data ======+===== Download raw data ===== 
  
 Download the .PBF file (australia-latest.osm.pbf) from Download the .PBF file (australia-latest.osm.pbf) from
Line 11: Line 14:
 http://download.geofabrik.de/australia-oceania/australia.html http://download.geofabrik.de/australia-oceania/australia.html
  
-====== Convert data ======+===== Convert data =====
  
-===== Basic =====+==== Basic ====
  
 Open up the OSGEO4W Shell that comes with QGIS (look under Start -> All Programs -> QGIS) Open up the OSGEO4W Shell that comes with QGIS (look under Start -> All Programs -> QGIS)
Line 21: Line 24:
  https://github.com/AmericanRedCross/workflows/blob/master/converting_pbf_into_spatialite.md   https://github.com/AmericanRedCross/workflows/blob/master/converting_pbf_into_spatialite.md 
    
-''ogr2ogr -f "SQLite" -dsco SPATIALITE=YES {name_of_new_file}.db {name_of_extracted_file}.pbf'' +<code>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES {name_of_new_file}.db {name_of_extracted_file}.pbf</code>
  
-eg ''ogr2ogr -f "SQLite" -dsco SPATIALITE=YES E:\geodata\ausosm-20230303.db E:\geodata_raw\australia-20230303.osm.pbf''+eg <code>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES E:\geodata\ausosm-20230303.db E:\geodata_raw\australia-20230303.osm.pbf</code>
  
 It's useful to include the date in the filenames so you know when the data is from. It's useful to include the date in the filenames so you know when the data is from.
  
-===== Cropping =====+==== Cropping ====
  
 If you need to crop the PBF file, the use the following command: If you need to crop the PBF file, the use the following command:
-''ogr2ogr -f "SQLite" -dsco SPATIALITE=YES -spat {x min} {y min} {xmax} {ymax} {output filename}.db {input file name}.osm.pbf''+<code>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES -spat {x min} {y min} {xmax} {ymax} {output filename}.db {input file name}.osm.pbf</code>
  
-eg For NSW data only, you could run: ''ogr2ogr -f "SQLite" -dsco SPATIALITE=YES -spat 141 -37.5 153.75 -28 E:\geodata\nswosm-20230303.db E:\geodata_raw\australia-20230303.osm.pbf''+eg For NSW data only, you could run: <code>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES -spat 141 -37.5 153.75 -28 E:\geodata\nswosm-20230303.db E:\geodata_raw\australia-20230303.osm.pbf</code>
  
 The coordinates above are in the following order: West South East North  The coordinates above are in the following order: West South East North 
  
-===== Fields =====+==== Fields ====
  
 You may want to control the fields that you are importing from OSM. This is done using the osmconf.ini file, that can be found under your QGIS installation eg C:\Program Files\QGIS 3.22.10\apps\gdal\share\gdal\osmconf.ini You may want to control the fields that you are importing from OSM. This is done using the osmconf.ini file, that can be found under your QGIS installation eg C:\Program Files\QGIS 3.22.10\apps\gdal\share\gdal\osmconf.ini
Line 48: Line 51:
 **Points:** attributes=name,barrier,highway,place,man_made,aeroway,amenity,tourism,information,ford,gate,leisure,natural,railway,waterway **Points:** attributes=name,barrier,highway,place,man_made,aeroway,amenity,tourism,information,ford,gate,leisure,natural,railway,waterway
  
-Other tags not listed will still be imported, but in a generic field called other_tags. You will still be able to access these tags in QGIS, but it will require a little more effort each time. So you should aim to capture any regularly used tags in the list above.+Other tags not listed will still be imported, but in a generic field called other_tags. You will still be able to access these tags in QGIS, but it will require a little more effort each time. So you should aim to capture any regularly used tags in the list above. Also note that some tags are explicitly excluded using the //ignore// field. You might find you want some of these eg ele(vation) and you should remove any such tags that you want.
  
-Take a backup of your osmconf.ini file as if you upgrade QGIS, you'll need to +If you make any changes, take a backup of your osmconf.ini file. If you upgrade QGIS, it will revert to the default, and you'll need to restore osmconf.ini if you want those fields to come through next time you process an OSM file.
  
-====== Load data in QGIS ======+It may be worth storing a copy of it in (say) your profile folder for QGIS, which is retained on upgrade eg C:\Users\<username>\AppData\Roaming\QGIS\QGIS3\profiles\default, and doesn't need admin permissions to edit. 
 + 
 +You can then use the ''-oo'' flag in the convert data process to point to the file location eg: 
 + 
 +<code>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES -oo CONFIG_FILE=C:\Users\brennant\AppData\Roaming\QGIS\QGIS3\profiles\default\osmconf.ini E:\geodata\ausosm-20231210.db E:\geodata_raw\australia-20231210.osm.pbf</code> 
 + 
 +===== Load data in QGIS =====
  
 Open QGIS. Open QGIS.
Line 60: Line 69:
 Select New, and locate the file. Select New, and locate the file.
  
-Once you have set up the connection, you can extract data using (for example) Vector Overlay->Extract/clip by extent. Select one of the layers within the file (points, lines, multipolygons) as the Input Layer, and an area to load.+Once you have set up the connection, you can extract data using (for example) the Processing Toolbox->Vector Overlay->Extract/clip by extent. Select one of the layers within the file (points, lines, multipolygons) as the Input Layer, and select an area to load - by map or by fileBe careful not to make it too large, or you'll get very slow performance. 
 + 
 +===== Style data in QGIS ===== 
 + 
 +Here are some sample bushwalking-based style files for OSM points and OSM lines: 
 +  * {{ :osm_bw_points.qml |OSM Points}} 
 +  * {{ :osm_bw_lines.qml |OSM Lines}} 
 + 
 +Note that they will only work fully if you have matched the tags that I'm importing. 
 + 
 +That said, you can generally fix any issues relating to tags by replacing a basic filtering rule such as  
 + 
 +''"natural"='peak''' 
 + 
 +with 
 + 
 +''hstore_to_map(other_tags)['natural'] = 'peak'''
  
-====== Style data in QGIS ====== 
  
-====== Links ======+===== Links =====
  
 Some other methods of getting OSM data into QGIS can be found at https://wiki.openstreetmap.org/wiki/QGIS_tutorial Some other methods of getting OSM data into QGIS can be found at https://wiki.openstreetmap.org/wiki/QGIS_tutorial
  
osm_qgis.1677904725.txt.gz · Last modified: 2023/03/04 15:38 by bushwalking

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki