Coğrafi veri dosyasından gereksiz sütunlar kaldırılsın mı?


10

İçinde gereksiz sütunlar olan bazı GML verileri var. Dosya boyutunu küçültmek için bu sütunları kaldırmak istiyorum. (Açıklığa kavuşturmak için: Dosyanın içinde çok sayıda nokta olduğunu ve bu noktaların her birinin bazı meta verileri eklenmiş olduğunu ve tüm meta verilere ihtiyacım olmadığını kastediyorum.)

Bunu da komut dosyasından yapmak istiyorum, çünkü birçok dosyam var.

Kullanarak GML dosyalarını farklı biçimlere dönüştürebilirim ogr2ogr, bu yüzden sorum şu: bir coğrafi veri dosyasından bir satırı komut satırından kaldırmanın en kolay yolu nedir?

Ben bir Python programcısıyım, bu yüzden içgüdüm dosyayı GeoJSON'a dönüştürmek, sonra JSON dosyasını okumak ve yeniden yazmak için Python'un JSON ayrıştırma yöntemlerini kullanmak olacaktır.

Ama belki de daha doğrudan bir yol var, GDAL aracı veya benzeri bir araç kullanıyor.

Yanıtlar:


10

Geçici dosya biçimi olarak şekil dosyası gerekli değildir ve GML verilerini de değiştirebilir (öznitelik adlarını kısaltabilir, dizeleri en fazla 255 karaktere kesebilir, DATETIME değerini DATE olarak değiştirebilir vb.)

Ben istenmeyen özellikleri bırakarak değil ama istenen olanlar seçerek ogr2ogr kullanabilirsiniz. SQLite SQL lehçesi varsayılan OGR lehçesinden daha standarttır, bu yüzden bu sorgu için bile gerekli olmadığını kullanıyorum.

ogr2ogr -f GML -dialect SQLite -sql "SELECT attr1, attr2, attr3,... FROM layer" output.gml input.gml

9

Bir alanı OGR SQL kullanarak ve alan silme işlemini destekleyen bir OGR formatı seçerek silebilirsiniz . Ne yazık ki GML bunu desteklemediğinden, başka bir biçimden, örneğin SHP'den geçmeniz gerekir:

ogr2ogr temp.shp input.gml
ogrinfo temp.shp -sql "ALTER TABLE temp DROP COLUMN field_to_drop"
ogr2ogr -f GML output.gml temp.shp

GeoJSON sürücüsü ile daha basit ve benzer bir şey yapabildim; ogrinfo input.geojson -sql "ALTER TABLE input DROP COLUMN field_to_drop" ALTER için tablo olarak dosya adının kullanıldığına dikkat edin.
vpipkt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.