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