Czy wybierasz typy obiektów podczas używania ogr2ogr do konwersji na plik shapefile?


22

Pliki kształtów mogą mieć tylko jeden typ geometrii, ale wiele innych formatów (kml, geojson) może mieć wiele typów.

Czy podczas konwersji do plików kształtów można powiedzieć ogr2ogr, aby utworzył wiele plików kształtów, po jednym dla każdego typu?

Wygląda na to, że opcja „-where” może być przydatna, ale strona podręcznika nie wyjaśnia składni.

Na przykład oto polecenie, które się nie powiedzie:

$ wget http://a841-tfpweb.nyc.gov/jackson-heights/wp-content/themes/tfp/kml/transit.kml
$ ogr2ogr -f "ESRI Shapefile" transit.shp transit.kml
Warning 6: Normalized/laundered field name: 'Description' to 'Descriptio'
ERROR 1: Attempt to write non-linestring (POINT) geometry to ARC type shapefile.
ERROR 1: Terminating translation prematurely after failed
translation of layer Transit (use -skipfailures to skip errors)

Odpowiedzi:


21

Zrozumiałem to, czytając dokumentację OGR SQL pod adresem http://www.gdal.org/ogr/ogr_sql.html

Działa to przy użyciu jednego polecenia i jednego pliku wyjściowego dla każdego typu geometrii:

$ ogr2ogr -where "OGR_GEOMETRY='Point'" -f "ESRI Shapefile" transit_points.shp transit.kml
$ ogr2ogr -where "OGR_GEOMETRY='LineString'" -f "ESRI Shapefile" transit_linestrings.shp transit.kml

4

Jeśli outputparametrem jest katalog zamiast nazwy pliku, ogr2ogr automatycznie przekonwertuje wszystkie typy geometrii na osobne pliki kształtów:

ogr2ogr out_dir d:\incoming\nhn_09AA001_1_0.gml

Niestety dla OP nie działa to w przypadku KML, ale działa w przypadku niektórych innych formatów wielu typów geometrii, takich jak ArcInfo Coverages i GML. Publikowanie tutaj, ponieważ jest to najczęściej głosowane pytanie dotyczące wyboru typu geometrii.

D:\>dir /s/b converted\*.shp

D:\converted\NHN_HD_ISLAND_2.shp
D:\converted\NHN_HD_MANMADE_0.shp
...
D:\converted\NHN_TO_NAMEDFEA_0.shp
D:\converted\NHN_WORKUNIT_LIMIT_2.shp

-1

ogr2ogr: przekonwertuj pojedynczy kml na plik kształtu:

ogr2ogr -f "ESRI Shapefile" C: \ kml \ LJ0047.shp C: \ kml \ LJ0047_.kml

ogr2ogr: konwertuje wiele plików kml na pliki kształtów:

dla% f w (* .kml) do ogr2ogr -f "Plik kształtu ESRI"% ~ nf.shp% f

Konieczny jest dostęp do folderu wejściowego.


Dzięki, ale nie o to pytałem.
slinkp
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.