[gdal-dev] Extracting keys & values from OSM Planet

Even Rouault even.rouault at spatialys.com
Mon Nov 20 06:59:51 PST 2017


On lundi 20 novembre 2017 15:48:20 CET Nikos Alexandris wrote:
> * Even Rouault <even.rouault at spatialys.com> [2017-11-07 22:37:02 +0100]:
> >> 2. Is OGR handling well the conversion from .osm to ESRI Shapefiles?
> >
> >Yes, but within the limits ot the shapefile, and particularly .dbf format:
> >limitation to 254 characters for field values, 10 characters for field
> >names... which are easily violated by OSM extracts.
> >
> >Spatialite, GeoPackage, PostGIS etc. would be better choices as output
> >format>
> >> 3. What is the way to split "other_tags" in multiple new fields *when*
> >> knowing exactly which tags are contained and should be obtained?
> >
> >Edit osmconf.ini to add in the attributes= settings the tag names you're
> >interested in.
> >
> >Even
> 
> Dear List,
> 
> in a custom .ini file, under the [points] layer, an `attributes=`
> instruction set of values that includes `natural,cave_entrance` (key and
> value under OSM's Natural key), well extracts for the points layer some
> existing nodes which bear the tag `natural:cave_entrance`.
> 
> It is not required, as far as I understand the documentation, to include
> both the parent key and any values (under it) of interest. Perhaps it may
> be practical to have the attributes of interest split in a separate column.
> 
> The command I tested, for example, is:
> 
> ```
> ogr2ogr --config OSM_CONFIG_FILE custom.ini -f SQLite -dsco SPATIALITE=YES
> -gt 65536 -progress output.sqlite source.osm ```
> 
> While this is sufficient for the work I am doing (I can filter
> `cave_entrance`s out from the `natural` column in the `output.sqlite` file),
> I wonder why the entries for some nodes correctly bear the string
> `cave_entrance` in the `natural` column, yet the `cave_entrance` column
> itself is empty for the same entries.

The attributes keyword in osmconf.ini will select OSM tags whose *key* is one of the item 
specified in attributes.
If you want to filter by value, you may add a -where or -sql clause  with something like 
"natural = 'cave_entrance'"

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20171120/eefeb040/attachment-0001.html>


More information about the gdal-dev mailing list