opendatasicilia / tansignari

"T'ansignari e t'appeddiri"
http://tansignari.opendatasicilia.it
Creative Commons Attribution 4.0 International
18 stars 10 forks source link

[ogr2ogr] importare alcuni feature class da un FileGDB a un altro #244

Closed pigreco closed 1 year ago

pigreco commented 1 year ago

Questo FileGDB è molto pesante (~ 5 GB) e @aborruso non vuole scaricarlo. (contiene oltre 300 tabelle) In questa issue una possibile soluzione per alleggerire il file (ridotto a 61 tabelle) e permettere a @aborruso di scaricarlo e fare dei test:

ogr2ogr -f "OpenFileGDB" -progress x_Andy_only_Polygon.gdb "D:\GitHub\ESRI_FileGeodatabase_GDAL\dati\DBGT_10K_22_V01.gdb" AC_CIC_AC_CIC_SUP_SR AR_VRD_AR_VRD_SUP EDIFC_CR_EDF_IS AR_STR_AR_STR_SUP_SR CANALE_CANALE_BSU  AB_CDA_AB_CDA_SUP_SR OP_POR_OPPR_SUP EDI_MIN_CR_EDF_IS F_NTER_F_NTER_SU EDIFC_CR_EDF_ME_SR CL_AGR_CL_AGR_SUP TRALIC_TRAL_BAS EDI_MIN_CR_EDF_ME AB_CDA_AB_CDA_SUP MAN_TR_MAN_TR_SUP  OP_REG_OP_REG_SUP MN_IND_MN_IND_SUP SD_FER_SD_FER_SUP_SR AR_VMS_AR_VMS_SUP MN_MAU_MN_MAU_SUP CV_AES_CV_AES_EXT_SR FOR_PC_FOR_PC_SUP_SR AR_STR PS_INC AC_PED_AC_PED_SUP_SR SV_AER EDI_MIN_CR_EDF_ME_SR ASTA_F_ASTA_F_BSU CV_AES AATT AC_CIC FOR_PC_FOR_PC_SUP MU_SOS_MSOS_SUP EDIFC_CR_EDF_ME A_PVEG SC_DIS AC_VEI_AC_VEI_SUP_SR MN_CON_MN_CON_SUP_SR ARGINE_ARGN_SUP_SR A_TRAS AR_VMS_AR_VMS_SUP_SR CT_MET BOSCO_BOSCO_SUP_SR DIGA_DIGA_SUP_SR ZONA_R PONTE OP_REG_OP_REG_SUP_SR GALLER ATTR_SP DIGA_DIGA_SUP AC_PED ELE_CP SD_FER MN_CON PE_UINS AC_VEI INVASO BOSCO ARGINE_ARGN_SUP SP_ACQ DRE_SUP_PLG  -lco FEATURE_DATASET=sardegna

in maiuscolo la lista delle sole feature class poligonali e con almeno 1 oggetto: otteniamo un peso di ~1.30 GB

forse è ancora pesante per lui :-(

pigreco commented 1 year ago

Ma come ho ottenuto la lista delle sole feature class polygonali e che hanno almeno un oggetto?

pigreco commented 1 year ago

Ma come ho ottenuto la lista delle sole feature class polygonali e che hanno almeno un oggetto?

ecco come:

  1. estraggo le info dal FileGDB:

    ogrinfo -so -json DBGT_10K_22_V01.gdb >out.json
  2. estraggo solo i poligoni che hanno almeno 1 oggetto:

    <out.json jq  -c '.layers[]|{name:.name,nro:.featureCount,geom_type:(if (.geometryFields|length) > 0 then .geometryFields[].type else "none" end) }' |  mlr --ijsonl --ocsv unsparsify then filter '$geom_type=~"^.{0,}Polygon.{0,}$"' then filter '$nro>0'

image

pigreco commented 1 year ago

Ricetta fatta e pubblicata

https://tansignari.opendatasicilia.it/ricette/bash/feature_class_da_un_filegdb_a_filegdb/