1 votos

¿Qué puede fallar al fusionar varios GeoJSON?

Intento I - ogrmerge

Tengo unos cuantos GeoJSON en un directorio llamado jordsmonnfiles . Quiero obtener un archivo GeoJSON con las características de los archivos que coincidan con el patrón jordsmonnfiles/jordsmonn_*JK1.geojson . Mi primer intento:

python3 ogrmerge.py -f GeoJSON -o JK1.geojson -nln JK1 jordsmonnfiles/jordsmonn_*JK1.geojson

Me aparece el error:

ERROR 1: La capa JK1 ya existe y no se ha especificado -append. Considere el uso de -append, o -overwrite. ERROR 1: Terminación prematura de la traducción tras un fallo en la traducción de la capa JK1 (use -skipfailures para omitir errores)

He leído sobre el -append en el documentación que lo describe como:

Abrir un conjunto de datos existente en modo de actualización, y si las capas de salida ya el contenido de las capas de entrada.

Pruébalo:

python3 ogrmerge.py -f GeoJSON -o JK1.geojson -nln JK1 jordsmonnfiles/jordsmonn_*JK1.geojson -append

Salida:

ERROR: -f incompatible con -update

Quita el -f bandera entonces:

python3 ogrmerge.py -o JK1.geojson -nln JK1 jordsmonnfiles/jordsmonn_*JK1.geojson -append

ERROR: El conjunto de datos de destino no existe

*¿Cómo podría unir todas las geometrías definidas en archivos que coincidan con el patrón `jordsmonnfiles/jordsmonn_JK1.geojson` en un único archivo?**

La vista esquemática de la salida deseada sería:

{
"type": "FeatureCollection",
"name": "WHATEVER_NAME",
"features": [
    { "type": "Feature",
      "properties": "WHATEVER, I DON'T NEED TO PRESERVE PROPERTIES OF SOURCE FILES",
      "geometry":
        { "type": "Polygon",
        "coordinates": [[[10.0,11.2], [10.5, 11.9],[10.8, 12.0],[10.0,11.2]]] }
    },
    { "type": "Feature",
      "properties": "WHATEVER, I DON'T NEED TO PRESERVE PROPERTIES OF SOURCE FILES",
      "geometry":
        { "type": "Polygon",
        "coordinates": [[[12.0,14.2], [12.5, 14.9],[12.8, 14.0],[12.0,14.2]]] }
    },
]
}

Sólo me importan las geometrías, no las propiedades de cada una. No quiero unirlas en el sentido de producir un MultiPolygon pero quiero listar todas las geometrías por separado en el archivo features parte del GeoJSON.


Intento II - mapbox/geojson-merge

También he intentado utilizar geojson-merge .

npm install -g @mapbox/geojson-merge # installs successfully
geojson-merge jordsmonnfiles/jordsmonn_*JK1.geojson > JK1.geojson 

Salida:

/opt/homebrew/lib/node_modules/@mapbox/geojson-merge/geojson-merge:17 process.stdout.write(JSON.stringify(merge(argv._.map(function(n) { ^

RangeError: Longitud de cadena no válida en JSON.stringify () en Object. (/opt/homebrew/lib/node_modules/@mapbox/geojson-merge/geojson-merge:17:29) at Module._compile (nodo:internal/modules/cjs/loader:1105:14) at Module._extensions..js (nodo:internal/modules/cjs/loader:1159:10) at Module.load (nodo:internal/modules/cjs/loader:981:32) at Module._load (nodo:internal/modules/cjs/loader:827:12) at Function.executeUserEntryPoint [as runMain] (nodo:internal/modules/run_main:77:12) en nodo:internal/main/run_main_module:17:47

Node.js v18.0.0

2voto

Joe Puntos 16

No ha encontrado ninguna opción al leer https://gdal.org/programs/ogrmerge.html

-solo Si se especifica, todas las capas vectoriales de entrada se fusionarán en una sola.

Pues hazlo:

 ogrmerge -single -o merged.json *.json

Cómo fusionar sólo geometrías pero no atributos merece otra pregunta. No creo que sea posible con ogrmerge.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X