Страница 1 из 1

Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 05 сен 2018, 14:52
alladuh
На просторах интернета нашёл как изменить название полей в shp файлах (просто делается выборка по нужным полям и изменяется их название)
А можно ли как-то сделать также только в geojson или gml файлах?
И ещё один вопрос: менять нзвание полей можно только когда делаешь выборку. Например:

Код: Выделить всё

ogr2ogr outputfile.shp inputfile.shp -sql "SELECT oldfield1 AS newfield1, oldfield2 AS newfield2 from inputfile"
или можно просто как-то изменить название определённого поля в файле и всё, а другие поля не трогать?

UPD Понял как сделать из json в gml с изменением названия поля. Но только с помощью sql запроса

Код: Выделить всё

ogr2ogr -f "GML" test1.gml PS_points.geojson -sql "SELECT FROM_OPORA AS NAME from PS_points"
Есть ли способ просто в файле изменить название поля без всяких выборок?

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 05 сен 2018, 15:32
trir
Есть ли способ просто в файле изменить название поля
просто в файле изменить название поля

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 05 сен 2018, 15:40
alladuh
trir писал(а):
05 сен 2018, 15:32
просто в файле изменить название поля
А если полей 60000?

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 05 сен 2018, 16:25
Игорь Белов
Это же просто текстовые файлы.

Код: Выделить всё

cat inputfile.json | sed 's|"oldfield1":|"newfield1":|' | sed 's|"oldfield2":|"newfield2":|' | … > outputfile.json

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 07:54
trir
А если полей 60000?
а какая разница? если в блкноте нажать "Заменить все"

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 08:59
gamm
trir писал(а):
06 сен 2018, 07:54
а какая разница? если в блкноте нажать "Заменить все"
у полей имена разные, как я понял.

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 09:08
trir
тогда в любом случае нужна автоматизация - python, powershell

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 10:17
alladuh
по ошибке

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 10:18
alladuh
Игорь Белов писал(а):
05 сен 2018, 16:25
Это же просто текстовые файлы.
КОД: ВЫДЕЛИТЬ ВСЁ

cat inputfile.json | sed 's|"oldfield1":|"newfield1":|' | sed 's|"oldfield2":|"newfield2":|' | … >
А такую команду для cmd случайно не знаете?

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 10:37
trir
(Get-Content c:\temp\test.txt) -replace '\[MYID\]', 'MyValue' | Set-Content c:\temp\test.txt
https://stackoverflow.com/questions/171 ... powershell

в n++ есть возможность применить замену сразу к куче файлов

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 11:59
Игорь Белов
gamm писал(а):
06 сен 2018, 08:59
у полей имена разные, как я понял
В постановке вопроса речь только об одном поле. Думаю, автор имеет в виду не число полей, а число записей, поскольку в XML-файлах имена полей повторяются в каждой записи.

Если число переименуемых полей невелико, trir прав, существует огромное множество текстовых редакторов, которые решат задачу через автоматический поиск и замену в файле/открытых файлах/файлах в указанной папке.

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 17:06
gamm
alladuh писал(а):
06 сен 2018, 10:18
А такую команду для cmd случайно не знаете?
поставьте эмулятор Linux, их полно.

Re: Изменить название полей с помощью ogr2ogr в geojson или gml

Добавлено: 06 сен 2018, 20:14
Игорь Белов
gamm писал(а):
06 сен 2018, 17:06
поставьте эмулятор Linux, их полно
Далеко ходить не надо, — в настройках OSGeo4W добавьте пакет MSYS, и получите отличный эмулятор терминала.