Il 14/04/2023 17:44, Emanuele ha scritto:
La domanda e': il vostro software consente di elaborare tutte e 250 celle in questo formato ed esportarlo successivamente in formato GeoJson? (vedere prova sotto).C'e' modo di automatizzare tale processo attraverso tool aggiuntivi al programma? In seguito ogni mese circa, ci verrano forniti anche dei file di aggiornamento, vi allego in copia entrambi i file per avere un esempio. La cella base ha un’estensione _000 e rappresenta una carta completa; gli aggiornamenti, invece, hanno estensione _001, _002, … ecc, secondo una sequenza progressiva, e contengono solo varianti alla cella base.

Ciao Emanuele,
questa è una mailing-list di utenti di QGIS. QGIS non è quindi il "nostro software". QGIS è un software con licenza GNU GPLv2 (Free e Open Source) ed è mantenuto da una comunità di sviluppatori e dall'associazione QGIS.ORG. Per maggiori info: https://www.qgis.org/

QGIS usa la libreria GDAL/OGR https://www.gdal.org/ per l'importazione, l'esportazione e la conversione della maggior parte dei formati di dati, tra cui i formati IHO S-57 (ENC) e GeoJSON.

In particolare, tutte le caratteristiche del supporto del formato S-57 da parte della libreria GDAL/OGR sono indicate alla pagina https://gdal.org/drivers/vector/s57.html

Come indicato in tale pagina:
"The base files normally have the extension .000 while the update files have extensions like .001, .002 and so on. The S-57 reader will normally read and apply all updates files to the in memory version of the base file on the fly. The feature data provided to the application therefore includes all the updates."

Ciò significa che i file di aggiornamento .001, .002, ..., sono automaticamente letti (da QGIS tramite GDAL/OGR) se presenti nella stessa cartella del file .000.

Un modo efficace per automatizzare il processo di conversione di vari file dal formato S-57 al formato GeoJSON è quello di creare uno script in Python, utilizzando funzionalità della libreria GDAL/OGR, che può essere usato sia tramite l'interfaccia grafica di QGIS (Python console), sia direttamente.

Per esempio, il seguente semplice script Python converte i layer presenti nel file C:\\percorso\\s57\\IT50196C.000 (e relativo IT50196C.001, se presente nella stessa cartella) e li memorizza in formato GeoJSON e nella cartella C:\\percorso\\geojson\\


from osgeo import gdal, ogr

file_s57 = 'C:\\percorso\\s57\\IT50196C.000'
output_path = 'C:\\percorso\\geojson\\'

srcDS = ogr.Open(file_s57, False)
numLayers = srcDS.GetLayerCount()
for iLayer in range (numLayers):
    layerName = srcDS.GetLayer(iLayer).GetName()
    gdal.VectorTranslate(
        output_path + layerName + '.geojson',
        file_s57,
        layers=[layerName],
        format='GeoJSON')
del srcDS

Chiaramente lo script può essere facilmente modificato per effettuare la stessa operazione per qualsiasi numero di file di input. Eventualmente può essere integrato in un apposito plugin o in un apposito algoritmo di processing da usare in QGIS.

Un altro modo è quello di usare i tool ogrinfo e ogr2ogr in uno script Windows Batch.

Comunque la libreria GDAL/OGR può essere usata anche in vari altri linguaggi di programmazione.

Per maggiori informazioni:

https://gdal.org/api/index.html
http://pcjericks.github.io/py-gdalogr-cookbook/index.html
https://docs.qgis.org/3.28/en/docs/pyqgis_developer_cookbook/index.html
https://docs.qgis.org/3.28/en/docs/user_manual/index.html
https://docs.qgis.org/3.28/en/docs/user_manual/plugins/python_console.html
https://docs.qgis.org/3.28/en/docs/pyqgis_developer_cookbook/plugins/index.html
https://docs.qgis.org/3.28/en/docs/user_manual/processing/scripts.html

A presto.

Andrea Giudiceandrea
_______________________________________________
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user

Rispondere a