Видалити непотрібні стовпці з файлу географічних даних?


10

У мене є деякі дані GML, у яких є кілька непотрібних стовпців. Я хотів би видалити ці стовпці, щоб зменшити розмір файлу. (Для уточнення: я маю на увазі, що у файлі є багато точок, і до кожного з цих пунктів додаються деякі метадані, і мені не потрібні всі метадані.)

Я також хотів би зробити це з командного рядка, оскільки у мене є багато файлів.

Я можу конвертувати файли GML у різні формати за допомогою ogr2ogr, тому моє запитання таке: який найпростіший спосіб видалити стовпчик з файлу географічних даних із командного рядка?

Я програміст Python, тому моїм інстинктом було б перетворити файл на GeoJSON, а потім використовувати методи JSON-розбору Python для читання та перезапису файлу JSON.

Але, можливо, є більш прямий спосіб, використовуючи інструмент GDAL або подібний.

Відповіді:


10

Shapefile як тимчасовий формат файлу не потрібен, він також може змінювати дані GML (скоротити назви атрибутів, скоротити рядки до максимум 255 символів, змінити DATETIME на DATE тощо)

Я б використовував ogr2ogr не за допомогою видалення небажаних атрибутів, а шляхом вибору потрібних атрибутів. Діалект SQLite SQL є більш стандартним, ніж діалект OGR за умовчанням, тому я використовую, що навіть це не потрібно для цього запиту.

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

9

Ви можете видалити поле за допомогою OGR SQL та обравши формат OGR, який підтримує видалення поля. На жаль, GML не підтримує його, тому вам доведеться пройти інший формат, наприклад, SHP:

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; ogrinfo input.geojson -sql "ALTER TABLE input DROP COLUMN field_to_drop" Зверніть увагу на використання імені файлу як таблиці ALTER.
vpipkt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.