diff --git a/README.md b/README.md index 7ae992b..f5428f5 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,17 @@ -Script de prétraitement d'un dossier du projet DORY - -J'ai créer ce dépot et séparer du projet de script de post traitement -pour pouvoir avoir mes dossiers de tests isolés des autres scripts du projet - -NOTES : - - Git modifie la fin de ligne de certains fichiers. LF devient CRLF, en - particuler les QMD et QML. Pour le moment dans mes tests, ça ne pose - pas de problème, car je n'exécute pas QGIS. Je n'ai pas encore trouvé - comment désactiver cette option dans Git. - - - -David. +Script de prétraitement d'un dossier du projet DORY + +J'ai créer ce dépot et séparer du projet de script de post traitement +pour pouvoir avoir mes dossiers de tests isolés des autres scripts du projet + +NOTES : + - Git modifie la fin de ligne de certains fichiers. LF devient CRLF, en + particuler les QMD et QML. Pour le moment dans mes tests, ça ne pose + pas de problème, car je n'exécute pas QGIS. Je n'ai pas encore trouvé + comment désactiver cette option dans Git. + + VOIR : mettre core.autocrlf à false pour avoir un comportement normal + (checkout-as-is, commit-as-is). + + + +David. diff --git a/TEST/sig/DPU.prj b/TEST/sig/DPU.prj index ae0206b..abb11e3 100644 --- a/TEST/sig/DPU.prj +++ b/TEST/sig/DPU.prj @@ -1 +1 @@ -PROJCS["RGF_1993_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",6600000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0]] \ No newline at end of file +DADADADAPROJCS["RGF_1991_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",6600000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/TEST/sig/DPU.qmd b/TEST/sig/DPU.qmd index a585e4a..d65ea3c 100644 --- a/TEST/sig/DPU.qmd +++ b/TEST/sig/DPU.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/ER.qmd b/TEST/sig/ER.qmd index a585e4a..d65ea3c 100644 --- a/TEST/sig/ER.qmd +++ b/TEST/sig/ER.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/PENAP.qmd b/TEST/sig/PENAP.qmd index a585e4a..d65ea3c 100644 --- a/TEST/sig/PENAP.qmd +++ b/TEST/sig/PENAP.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/PPRI.qmd b/TEST/sig/PPRI.qmd index a585e4a..d65ea3c 100644 --- a/TEST/sig/PPRI.qmd +++ b/TEST/sig/PPRI.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/ZONE U.qml b/TEST/sig/ZONE U.qml index 326ebaa..3b832c3 100644 --- a/TEST/sig/ZONE U.qml +++ b/TEST/sig/ZONE U.qml @@ -1,605 +1,605 @@ - - - - 1 - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - generatedlayout - - - - - - - - - - - - - - - - - - "LIBELLE" - - 2 - + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + "LIBELLE" + + 2 + diff --git a/TEST/sig/Zone N.qml b/TEST/sig/Zone N.qml index 0e2b748..bf2bc74 100644 --- a/TEST/sig/Zone N.qml +++ b/TEST/sig/Zone N.qml @@ -1,704 +1,704 @@ - - - - 1 - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - generatedlayout - - - - - - - - - - - - - - - - - - "LIBELLE" - - 2 - + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + "LIBELLE" + + 2 + diff --git a/TEST/sig/cadastre/69166_batiment.qmd b/TEST/sig/cadastre/69166_batiment.qmd index e21147c..68fb8a0 100644 --- a/TEST/sig/cadastre/69166_batiment.qmd +++ b/TEST/sig/cadastre/69166_batiment.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/cadastre/69166_commune.qmd b/TEST/sig/cadastre/69166_commune.qmd index e21147c..68fb8a0 100644 --- a/TEST/sig/cadastre/69166_commune.qmd +++ b/TEST/sig/cadastre/69166_commune.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/cadastre/69166_parcelles.qmd b/TEST/sig/cadastre/69166_parcelles.qmd index e21147c..68fb8a0 100644 --- a/TEST/sig/cadastre/69166_parcelles.qmd +++ b/TEST/sig/cadastre/69166_parcelles.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/emplacements réservés.qmd b/TEST/sig/emplacements réservés.qmd index bb41605..0ea6e89 100644 --- a/TEST/sig/emplacements réservés.qmd +++ b/TEST/sig/emplacements réservés.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 Lambert 93",BASEGEOGCRS["RGF93 geographiques (dms)",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["IGNF","RGF93G"]],CONVERSION["LAMBERT-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["NATIONALE A CARACTERE LEGAL"],AREA["FRANCE METROPOLITAINE (CORSE COMPRISE)"],BBOX[41,-5.5,52,10]],ID["IGNF","LAMB93"]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=44 +lat_2=49 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 10089 - 310024140 - IGNF:LAMB93 - RGF93 Lambert 93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 Lambert 93",BASEGEOGCRS["RGF93 geographiques (dms)",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["IGNF","RGF93G"]],CONVERSION["LAMBERT-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["NATIONALE A CARACTERE LEGAL"],AREA["FRANCE METROPOLITAINE (CORSE COMPRISE)"],BBOX[41,-5.5,52,10]],ID["IGNF","LAMB93"]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=44 +lat_2=49 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 10089 + 310024140 + IGNF:LAMB93 + RGF93 Lambert 93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/glissement.qmd b/TEST/sig/glissement.qmd index a585e4a..d65ea3c 100644 --- a/TEST/sig/glissement.qmd +++ b/TEST/sig/glissement.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/lignes.qmd b/TEST/sig/lignes.qmd index a585e4a..d65ea3c 100644 --- a/TEST/sig/lignes.qmd +++ b/TEST/sig/lignes.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/muret_l93.qmd b/TEST/sig/muret_l93.qmd index 857e160..b6df493 100644 --- a/TEST/sig/muret_l93.qmd +++ b/TEST/sig/muret_l93.qmd @@ -1,44 +1,44 @@ - - - - - - dataset - - - - - - - - - - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - - - - - - - - - + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + + + + + + + + + diff --git a/TEST/sig/prescriptions.qmd b/TEST/sig/prescriptions.qmd index a585e4a..d65ea3c 100644 --- a/TEST/sig/prescriptions.qmd +++ b/TEST/sig/prescriptions.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/TEST/sig/zone A.qml b/TEST/sig/zone A.qml index 4fab670..2383490 100644 --- a/TEST/sig/zone A.qml +++ b/TEST/sig/zone A.qml @@ -1,669 +1,669 @@ - - - - 1 - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - generatedlayout - - - - - - - - - - - - - - - - - - "LIBELLE" - - 2 - + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + "LIBELLE" + + 2 + diff --git a/TEST/sig/zone AU.qmd b/TEST/sig/zone AU.qmd index 1eb6504..71ab0d2 100644 --- a/TEST/sig/zone AU.qmd +++ b/TEST/sig/zone AU.qmd @@ -1,44 +1,44 @@ - - - - - - dataset - - - - - - - - - - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - - - - - - - - - + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + + + + + + + + + diff --git a/TEST/sig/zone AU.qml b/TEST/sig/zone AU.qml index 848d67d..dfaefba 100644 --- a/TEST/sig/zone AU.qml +++ b/TEST/sig/zone AU.qml @@ -1,537 +1,537 @@ - - - - 1 - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - generatedlayout - - - - - - - - - - - - - - - - - - "LIBELLE" - - 2 - + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + "LIBELLE" + + 2 + diff --git a/TEST/sig/zones humides.qmd b/TEST/sig/zones humides.qmd index a585e4a..d65ea3c 100644 --- a/TEST/sig/zones humides.qmd +++ b/TEST/sig/zones humides.qmd @@ -1,27 +1,27 @@ - - - - - - dataset - - - - - - - - - PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] - +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs - 145 - 2154 - EPSG:2154 - RGF93 v1 / Lambert-93 - lcc - EPSG:7019 - false - - - - + + + + + + dataset + + + + + + + + + PROJCRS["RGF93 v1 / Lambert-93",BASEGEOGCRS["RGF93 v1",DATUM["Reseau Geodesique Francais 1993 v1",ELLIPSOID["GRS 1980",6378137,298.257222101,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4171]],CONVERSION["Lambert-93",METHOD["Lambert Conic Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false origin",46.5,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8821]],PARAMETER["Longitude of false origin",3,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8822]],PARAMETER["Latitude of 1st standard parallel",49,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Latitude of 2nd standard parallel",44,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8824]],PARAMETER["Easting at false origin",700000,LENGTHUNIT["metre",1],ID["EPSG",8826]],PARAMETER["Northing at false origin",6600000,LENGTHUNIT["metre",1],ID["EPSG",8827]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Engineering survey, topographic mapping."],AREA["France - onshore and offshore, mainland and Corsica (France métropolitaine including Corsica)."],BBOX[41.15,-9.86,51.56,10.38]],ID["EPSG",2154]] + +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs + 145 + 2154 + EPSG:2154 + RGF93 v1 / Lambert-93 + lcc + EPSG:7019 + false + + + + diff --git a/algorithme.txt b/algorithme.txt index 327e2aa..c6e8c36 100644 --- a/algorithme.txt +++ b/algorithme.txt @@ -1,260 +1,260 @@ -~~ ALGORITHME Script DORY Digitanie ~~ - - -Traitement de documents d'un dossier de PLU pour mise a disposition d'un -opérateur. -Dans ce programme, la notion de "projet" fait référence à un fichier de -couche SHP avec ses fichiers supplémentaires pour une bonne importation -dans QGIS. -Pour le moment et comme spécifié, le programme ne traite pas les -formats composés GPKG ou SQLITE. -Après l'exécution de ce programme, l'opérateur devra traiter chaque projet -en s'appuyant du rapport VISA généré. - - -CONTRAINTES - - - Il n'y a pas d'arborescence prédéfinie à l'intérieur du dossier source. - - - Les fichiers du cadastres ne sont pas nécessairement isolés des autres - fichiers. Mais normalement, leurs noms devraient respecter une - nomenclature : "commune", "parcelles" et "batiment". - - -CONSTANTES - -- une liste des extensions nécessaires list string -- une liste des extentions auxiliaires list string -- la configuration de la feuille Excel - enregistrement { nom = "A3", type = "B3", ... - rouge = "0x444", ... - formule_OK = "slkfjslfkjs", - formule_FAIL = "rjekrjldkj" } -/*une enumération des projections valides - enum {"LAMBERT93", "RGFG95", "RGR92", "RGSPM06"} - N'est pas nécessaire tant que l'on traite des dossiers en France - métropolitaine */ - - -VARIABLES - -- une liste des fichiers list _Fichier -- un dictionnaire des projets avec pour clé le nom de chaque projet - dico de paire string : Entité Projet -- un chemin absolue vers le repertoire racine à traiter string - - -REPRESENTATION DES DONNEES - - - _Fichier -Enregistrement de : -- son nom original - string -- son chemin - string -- son extension - string -- son nom formaté - string -- son implication - enum {"Nécessaire", - "Auxiliaire", - "Non-conforme", - "A-ignorer"} /* pas sur pour le dernier, - a voir si je dois ignorer - des PDFs ou DOCs, etc */ - /* implique qu'un fichier à l'état "Nécessaire" ou "Auxiliaire" - est considéré comme "Conforme" */ - - _Catalogue -Enregistrement de : -- son dictionnaire de fichiers nécessaires avec pour clé l'extention -de chaque fichier - dico de paire string : _Fichier -- son dictionnaire de fichiers auxiliaires avec pour clé l'extention -de chaque fichier - dico de paire string : _Fichier -- son dictionnaire de fichiers non-conformes avec pour clé l'extention -de chaque fichier - dico de paire string : _Fichier - - _Projet -Enregistrement de : -- son nom - string -- son catalogue - _Catalogue -- son nombre de fichiers - entier -- sa conformité - bool -- sa projection géodésique - string // ou énumération --> voir Constantes -- son type d'encodage prévu dans QGIS string - /* pour ce script, ce devrait être forcement "UTF8" */ - - -1er NIVEAU D'AFFINAGE - -DEBUT DU PROGRAMME - -recupérer le chemin du dossier à traiter -analyser le dossier -produire le dossier de mise à disposition -produire le rapport - -ARRET DU PROGRAMME - - - -2ième NIVEAU D'AFFINAGE - -DEBUT DU PROGRAMME - ---recupérer le chemin du dossier à traiter - Si il y a un dossier de traitement dans le working directory Alors - lire le chemin absolue du dossier "racine" de traitement - Sinon - /* il n'y a pas de dossier de traitement, l'opérateur a peut-être - lancé le programme sans fournir de dossier */ - signaler l'erreur - fin du programme - Fin Si - ---analyser le dossier - initialiser une liste de _Fichiers - Pour Chaque dossier et sous dossier à explorer Faire - lire, analyser chaque fichier et peupler la liste - Fin Pour - - /* Ici la liste des _Fichiers doit être correctement remplie */ - - initialiser un dictionnaire de _Projets avec comme clé leurs noms respectifs - Pour Chaque fichier de la liste Faire - associer le fichier courant à un projet du dictionnaire - Fin Pour - - Pour Chaque projet du dictionnaire Faire - analyser et completer les infos du projet courant - /* conformité, projection, encodage etc */ - Fin Pour - - /* Ici le dictionnaire des _Projets doit être correctement remplie */ - ---produire le rapport - créer un classeur Excel - mettre en page la première feuille du classeur - Pour chaque projet du dictionnaire Faire - completer la feuille avec les infos du projet courant - Fin Pour - - /* Ici le rapport doit être correctement produit et remplie */ - ---produire le dossier de mise à disposition - créer un dossier "Travail" et un dossier "Livraison" - créer l'arborescence du dossier "Travail" - peupler le dossier "Travail" - - /* Ici les dossiers doivent être correctement produit et remplie */ - -ARRET DU PROGRAMME - - - -3ième NIVEAU D'AFFINAGE - -DEBUT DU PROGRAMME - ---recupérer le chemin du dossier à traiter - Si il y a un dossier de traitement dans le working directory Alors - lire le chemin absolue du dossier "racine" de traitement - Sinon - /* il n'y a pas de dossier de traitement, l'opérateur a peut-être - lancé le programme sans fournir de dossier */ - signaler l'erreur - fin du programme - Fin Si - ---analyser le dossier - initialiser une liste de _Fichiers - Pour Chaque fichier des dossiers et sous dossiers à explorer Faire - --lire, analyser chaque fichier et peupler la liste - initialiser un _Fichier - lire son chemin - déterminer son nom original et son extension - lire le nom original - lire son extension - formatter et écrire le nom - déterminer son implication - ajouter le _Fichier à la liste - Fin Pour - - /* Ici la liste des _Fichiers doit être correctement remplie */ - - initialiser un dictionnaire de _Projets avec comme clé leurs noms respectifs - Pour Chaque fichier de la liste Faire - --associer le fichier courant à un projet du dictionnaire - /* Vérifier que le projet existe déjà dans le dico */ - Si le nom du fichier courant n'est pas dans le dico Alors - initialiser un _Projet - ajouter le nom comme clé dans le dictionnaire - associer le projet à cette clé - Fin Si - cataloguer le fichier dans le projet concerné - il y a un fichier de plus au projet - Fin Pour - - Pour Chaque projet du dictionnaire Faire - --analyser et completer les infos du projet courant - /* conformité, projection, encodage etc */ - lire la projection du projet courant - lire l'encodage du projet courant - Si tous les fichiers nécessaires sont présents ET - la projection est correcte ET - l'encodage est correct Alors - passer le projet à conforme - Fin Si - Fin Pour - - /* Ici le dictionnaire des _Projets doit être correctement remplie */ - ---produire le rapport - créer un classeur Excel - /* Note : peut être utiliser un modèle pré-config */ - --mettre en page la première feuille du classeur - inserer une image - écrire les nom des colonnes - écrire les formules de colorations auto des colonnes - - Pour chaque projet du dictionnaire Faire - --completer la feuille avec les infos du projet courant - /* Note : Chaque ligne de la feuille correspond à un projet */ - /* Utiliser la config fournie en Constante */ - écrire le nom du projet - écrire le type d'extention - /* Note : ce sera "SHP" pour les projets conformes et le type - natif pour les non-conformes */ - écrire le nombre de fichiers du projet - écrire l'encodage - écrire la projection - écrire la validité (conformité) - encadrer le "tout" pour délimiter le tableau de la feuille - Fin Pour - - /* Ici le rapport doit être correctement produit et remplie */ - ---produire le dossier de mise à disposition - créer un dossier "Travail" et un dossier "Livraison" - --créer l'arborescence du dossier "Travail" - le dossier Travail devient le working directory - créer un dossier "00-Cadastre" - créer un dossier "01-Donnees_Valides" - créer un dossier "02-Donnees_Invalides - créer un dossier "03-Production" - créer un dossier "04-Verif_Geometrie" - --peupler le dossier "Travail" - Pour Chaque projet du dictionnaire Faire - copier les fichiers des projets conforme dans le dossier "01" - copier les fichiers des projets non-conformes dans le dossier "02" - Fin Pour - - /* Ici les dossiers doivent être correctement produit et remplie */ - -ARRET DU PROGRAMME - - - -/* TODO Controler qu'il y a bien les 5 necessaires par projet sinon FAIL - --> a faire dans le controle de conformité de chaque projet */ - -/* TODO S'assurer que les GPKG et autres non conformes peuplent correctement - les infos dans les projets --> géré si l'initialisation des - projets est correctement fait */ +~~ ALGORITHME Script DORY Digitanie ~~ + + +Traitement de documents d'un dossier de PLU pour mise a disposition d'un +opérateur. +Dans ce programme, la notion de "projet" fait référence à un fichier de +couche SHP avec ses fichiers supplémentaires pour une bonne importation +dans QGIS. +Pour le moment et comme spécifié, le programme ne traite pas les +formats composés GPKG ou SQLITE. +Après l'exécution de ce programme, l'opérateur devra traiter chaque projet +en s'appuyant du rapport VISA généré. + + +CONTRAINTES + + - Il n'y a pas d'arborescence prédéfinie à l'intérieur du dossier source. + + - Les fichiers du cadastres ne sont pas nécessairement isolés des autres + fichiers. Mais normalement, leurs noms devraient respecter une + nomenclature : "commune", "parcelles" et "batiment". + + +CONSTANTES + +- une liste des extensions nécessaires list string +- une liste des extentions auxiliaires list string +- la configuration de la feuille Excel + enregistrement { nom = "A3", type = "B3", ... + rouge = "0x444", ... + formule_OK = "slkfjslfkjs", + formule_FAIL = "rjekrjldkj" } +/*une enumération des projections valides + enum {"LAMBERT93", "RGFG95", "RGR92", "RGSPM06"} + N'est pas nécessaire tant que l'on traite des dossiers en France + métropolitaine */ + + +VARIABLES + +- une liste des fichiers list _Fichier +- un dictionnaire des projets avec pour clé le nom de chaque projet + dico de paire string : Entité Projet +- un chemin absolue vers le repertoire racine à traiter string + + +REPRESENTATION DES DONNEES + + + _Fichier +Enregistrement de : +- son nom original - string +- son chemin - string +- son extension - string +- son nom formaté - string +- son implication - enum {"Nécessaire", + "Auxiliaire", + "Non-conforme", + "A-ignorer"} /* pas sur pour le dernier, + a voir si je dois ignorer + des PDFs ou DOCs, etc */ + /* implique qu'un fichier à l'état "Nécessaire" ou "Auxiliaire" + est considéré comme "Conforme" */ + + _Catalogue +Enregistrement de : +- son dictionnaire de fichiers nécessaires avec pour clé l'extention +de chaque fichier - dico de paire string : _Fichier +- son dictionnaire de fichiers auxiliaires avec pour clé l'extention +de chaque fichier - dico de paire string : _Fichier +- son dictionnaire de fichiers non-conformes avec pour clé l'extention +de chaque fichier - dico de paire string : _Fichier + + _Projet +Enregistrement de : +- son nom - string +- son catalogue - _Catalogue +- son nombre de fichiers - entier +- sa conformité - bool +- sa projection géodésique - string // ou énumération --> voir Constantes +- son type d'encodage prévu dans QGIS string + /* pour ce script, ce devrait être forcement "UTF8" */ + + +1er NIVEAU D'AFFINAGE + +DEBUT DU PROGRAMME + +recupérer le chemin du dossier à traiter +analyser le dossier +produire le dossier de mise à disposition +produire le rapport + +ARRET DU PROGRAMME + + + +2ième NIVEAU D'AFFINAGE + +DEBUT DU PROGRAMME + +--recupérer le chemin du dossier à traiter + Si il y a un dossier de traitement dans le working directory Alors + lire le chemin absolue du dossier "racine" de traitement + Sinon + /* il n'y a pas de dossier de traitement, l'opérateur a peut-être + lancé le programme sans fournir de dossier */ + signaler l'erreur + fin du programme + Fin Si + +--analyser le dossier + initialiser une liste de _Fichiers + Pour Chaque dossier et sous dossier à explorer Faire + lire, analyser chaque fichier et peupler la liste + Fin Pour + + /* Ici la liste des _Fichiers doit être correctement remplie */ + + initialiser un dictionnaire de _Projets avec comme clé leurs noms respectifs + Pour Chaque fichier de la liste Faire + associer le fichier courant à un projet du dictionnaire + Fin Pour + + Pour Chaque projet du dictionnaire Faire + analyser et completer les infos du projet courant + /* conformité, projection, encodage etc */ + Fin Pour + + /* Ici le dictionnaire des _Projets doit être correctement remplie */ + +--produire le rapport + créer un classeur Excel + mettre en page la première feuille du classeur + Pour chaque projet du dictionnaire Faire + completer la feuille avec les infos du projet courant + Fin Pour + + /* Ici le rapport doit être correctement produit et remplie */ + +--produire le dossier de mise à disposition + créer un dossier "Travail" et un dossier "Livraison" + créer l'arborescence du dossier "Travail" + peupler le dossier "Travail" + + /* Ici les dossiers doivent être correctement produit et remplie */ + +ARRET DU PROGRAMME + + + +3ième NIVEAU D'AFFINAGE + +DEBUT DU PROGRAMME + +--recupérer le chemin du dossier à traiter + Si il y a un dossier de traitement dans le working directory Alors + lire le chemin absolue du dossier "racine" de traitement + Sinon + /* il n'y a pas de dossier de traitement, l'opérateur a peut-être + lancé le programme sans fournir de dossier */ + signaler l'erreur + fin du programme + Fin Si + +--analyser le dossier + initialiser une liste de _Fichiers + Pour Chaque fichier des dossiers et sous dossiers à explorer Faire + --lire, analyser chaque fichier et peupler la liste + initialiser un _Fichier + lire son chemin + déterminer son nom original et son extension + lire le nom original + lire son extension + formatter et écrire le nom + déterminer son implication + ajouter le _Fichier à la liste + Fin Pour + + /* Ici la liste des _Fichiers doit être correctement remplie */ + + initialiser un dictionnaire de _Projets avec comme clé leurs noms respectifs + Pour Chaque fichier de la liste Faire + --associer le fichier courant à un projet du dictionnaire + /* Vérifier que le projet existe déjà dans le dico */ + Si le nom du fichier courant n'est pas dans le dico Alors + initialiser un _Projet + ajouter le nom comme clé dans le dictionnaire + associer le projet à cette clé + Fin Si + cataloguer le fichier dans le projet concerné + il y a un fichier de plus au projet + Fin Pour + + Pour Chaque projet du dictionnaire Faire + --analyser et completer les infos du projet courant + /* conformité, projection, encodage etc */ + lire la projection du projet courant + lire l'encodage du projet courant + Si tous les fichiers nécessaires sont présents ET + la projection est correcte ET + l'encodage est correct Alors + passer le projet à conforme + Fin Si + Fin Pour + + /* Ici le dictionnaire des _Projets doit être correctement remplie */ + +--produire le rapport + créer un classeur Excel + /* Note : peut être utiliser un modèle pré-config */ + --mettre en page la première feuille du classeur + inserer une image + écrire les nom des colonnes + écrire les formules de colorations auto des colonnes + + Pour chaque projet du dictionnaire Faire + --completer la feuille avec les infos du projet courant + /* Note : Chaque ligne de la feuille correspond à un projet */ + /* Utiliser la config fournie en Constante */ + écrire le nom du projet + écrire le type d'extention + /* Note : ce sera "SHP" pour les projets conformes et le type + natif pour les non-conformes */ + écrire le nombre de fichiers du projet + écrire l'encodage + écrire la projection + écrire la validité (conformité) + encadrer le "tout" pour délimiter le tableau de la feuille + Fin Pour + + /* Ici le rapport doit être correctement produit et remplie */ + +--produire le dossier de mise à disposition + créer un dossier "Travail" et un dossier "Livraison" + --créer l'arborescence du dossier "Travail" + le dossier Travail devient le working directory + créer un dossier "00-Cadastre" + créer un dossier "01-Donnees_Valides" + créer un dossier "02-Donnees_Invalides + créer un dossier "03-Production" + créer un dossier "04-Verif_Geometrie" + --peupler le dossier "Travail" + Pour Chaque projet du dictionnaire Faire + copier les fichiers des projets conforme dans le dossier "01" + copier les fichiers des projets non-conformes dans le dossier "02" + Fin Pour + + /* Ici les dossiers doivent être correctement produit et remplie */ + +ARRET DU PROGRAMME + + + +/* TODO Controler qu'il y a bien les 5 necessaires par projet sinon FAIL + --> a faire dans le controle de conformité de chaque projet */ + +/* TODO S'assurer que les GPKG et autres non conformes peuplent correctement + les infos dans les projets --> géré si l'initialisation des + projets est correctement fait */ diff --git a/script_pre_traitement_dory.py b/script_pre_traitement_dory.py index beeb8c1..f314f43 100644 --- a/script_pre_traitement_dory.py +++ b/script_pre_traitement_dory.py @@ -1,287 +1,441 @@ -# ~~ Script DORY Digitanie ~~ - -# Voir algorithme.txt pour plus de détails et commentaires - -import os # getcwd(), - - - - - -# - une liste des extensions nécessaires -NECESSAIRES = ["cpg", "dbf", "prj", "shp", "shx"] - -# - une liste des extentions auxiliaires -AUXILIAIRES = ["qix", "qmd", "qml"] - -# - la configuration de la feuille Excel -CONFIG = {"NOM" : "A5", - "TYPE" : "B5", - "NB_FICHIERS" : "C5", - "ENCODAGE" : "D5", - "PROJECTION" : "E5", - "VALIDITE" : "F5"} - - - -# REPRESENTATION DES DONNEES - -class _Fichier: - def __init__(self, - nom_original="Pas de nom original", - chemin="Pas de chemin", - extension="Pas d'extension", - nom= "Pas de nom", - implication="Non-conforme"): - self.nom_original = nom_original # - son nom original - string - self.chemin = chemin # - son chemin - string - self.extension = extension # - son extension - string - self.nom = nom # - son nom formaté - string - self.implication = implication # - son implication - enum - # {"Nécessaire", - # "Auxiliaire", - # "Non-conforme", - # "A-ignorer"} - def afficher(self): - print("nom : ".center(16), self.nom) - print("nom orig : ".center(16), self.nom_original) - print("ext : ".center(16), self.extension) - print("chemin : ".center(16), self.chemin) - print("implication :".center(16), self.implication) - - -class _Catalogue: - def __init__(self, - necessaires="Pas de dico", - auxiliaires="Pas de dico", - non_conformes="Pas de dico"): - self.necessaires = necessaires # - son dictionnaire de fichiers nécessaires avec pour clé l'extention - # de chaque fichier - dico de paire string : _Fichier - self.auxiliaires = auxiliaires # - son dictionnaire de fichiers auxiliaires avec pour clé l'extention - # de chaque fichier - dico de paire string : _Fichier - self.non_conformes = non_conformes # - son dictionnaire de fichiers non-conformes avec pour clé l'extention - # de chaque fichier - dico de paire string : _Fichier - - -class _Projet: - def __init__(self, - nom="Pas de nom", - catalogue="Pas de catalogue", - nb_fichiers=0, - conformite=False, - projection="Pas de projection", - encodage="Pas d'encodage"): - self.nom = nom # - son nom - string - self.catalogue = catalogue # - son catalogue - _Catalogue - self.nb_fichiers = nb_fichiers # - son nombre de fichiers - entier - self.conformite = conformite # - sa conformité - bool - self.projection = projection # - sa projection géodésique - string // ou énumération --> voir Constantes - self.encodage = encodage # - son type d'encodage prévu dans QGIS string - # /* pour ce script, ce devrait être forcement "UTF8" */ - - -# DEFINITIONS DE FONCTIONS - -def formatter(chaine): - """Formate selon nomenclature. - - Formate la chaine de caractères passée en paramètre : - Enlève tous les accents français. Enlève la cédille du C. - Remplace les espaces ' ' et les traits d'union '-' par - des tirets bas '_'. - Ne traite pas pour le moment le AE et OE ligaturé. - """ - #TODO : gérer les accents sur majuscules - #TODO : amélioration ou exercice, utiliser la méthode str.translate() et maketrans - resultat = "" - for c in chaine: - match c: - case "à" | "â" | "ä": - resultat+= "a" - case "é" | "è" | "ê" | "ë": - resultat+= "e" - case "î" | "ï": - resultat+= "i" - case "ô" | "ö": - resultat+= "o" - case "ù" | "û" | "ü": - resultat+= "u" - case "ÿ": - resultat+= "y" - case "ç": - resultat+= "c" - case " " | "-": - resultat+= "_" - case _: - resultat+= c - return resultat - - - -def impliquer(fichier): - """Définir l'implication d'un fichier - - Les fichiers nécessaires sont indispensables sinon l'importation - de la couche échoue. - Les fichiers optionels (ou auxiliaires) contiennent des données - supplémentaires lors de l'importation. - Les fichiers non conformes pourraient être importer dans QGIS. Mais, - ne sont pas conformes au cahier des charges. - Les fichiers ignorés ne fonctionnent pas dans QGIS. - L'implication est définie en fonction de l'extension du fichier. - """ - resultat = fichier - match fichier.extension: - case "dbf" | "cpg" | "prj" | "shx" | "shp": - resultat.implication = "Necessaire" - case "qix" | "qmd" | "qml": - resultat.implication = "Auxiliaire" - case "qpkg" | "sqlite": - resultat.implication = "Non-conforme" - case _: - resultat.implication = "A-ignorer" - return resultat - - - - -# DEBUT DU PROGRAMME - -liste = [] # - une liste des fichiers list _Fichier -dico = {} # - un dictionnaire des projets avec pour clé le nom de chaque projet - # dico de paire string : Entité Projet -racine = os.getcwd() # - un chemin absolue vers le repertoire racine à traiter string -print(racine) - - - -# --recupérer le chemin du dossier à traiter - # Si il y a PAS un dossier de traitement dans le working directory Alors -pas_de_dossier = True - -for a in os.scandir("./"): - if a.is_dir(): - #il y a un dossier - pas_de_dossier = False -if pas_de_dossier: - print("Pas de dossier trouvé...\nFin de programme\n") - os.system("pause") - # fin du programme - exit() -else: - print(f"Dossier à Traiter trouvé : {a.name}") - racine = a - - -# --analyser le dossier - # initialiser une liste de _Fichiers - liste = [] - # Pour Chaque fichier des dossiers et sous dossiers à explorer Faire - for dossier_courant, list_dossiers, list_fichiers in os.walk(racine): - for fichier_courant in list_fichiers: - # --lire, analyser chaque fichier et peupler la liste - # initialiser un _Fichier - ce_Fichier = _Fichier() - # lire son chemin - ce_Fichier.chemin = fichier_courant - # déterminer son nom original et son extension - # lire le nom original - # lire son extension - ce_Fichier.nom_original, ce_Fichier.extension = ce_Fichier.chemin.split(".") - # formatter et écrire le nom - ce_Fichier.nom = formatter(ce_Fichier.nom_original) - # déterminer son implication - ce_Fichier = impliquer(ce_Fichier) # TODO impliquer(), A VOIR si je peux passer juste l'implicatin et non l'ojbet en entier - # ajouter le _Fichier à la liste - liste.append(ce_Fichier) - # Fin Pour - - # /* Ici la liste des _Fichiers doit être correctement remplie */ - #TEST affichage de la liste de fichier - for a in liste: - a.afficher() - print("\n\n") - - - - os.system("pause") - - # initialiser un dictionnaire de _Projets avec comme clé leurs noms respectifs - # Pour Chaque fichier de la liste Faire - # --associer le fichier courant à un projet du dictionnaire - # /* Vérifier que le projet existe déjà dans le dico */ - # Si le nom du fichier courant n'est pas dans le dico Alors - # initialiser un _Projet - # ajouter le nom comme clé dans le dictionnaire - # associer le projet à cette clé - # Fin Si - # cataloguer le fichier dans le projet concerné - # il y a un fichier de plus au projet - # Fin Pour - - # Pour Chaque projet du dictionnaire Faire - # --analyser et completer les infos du projet courant - # /* conformité, projection, encodage etc */ - # lire la projection du projet courant - # lire l'encodage du projet courant - # Si tous les fichiers nécessaires sont présents ET - # la projection est correcte ET - # l'encodage est correct Alors - # passer le projet à conforme - # Fin Si - # Fin Pour - - # /* Ici le dictionnaire des _Projets doit être correctement remplie */ - -# --produire le rapport - # créer un classeur Excel - # /* Note : peut être utiliser un modèle pré-config */ - # --mettre en page la première feuille du classeur - # inserer une image - # écrire les nom des colonnes - # écrire les formules de colorations auto des colonnes - - # Pour chaque projet du dictionnaire Faire - # --completer la feuille avec les infos du projet courant - # /* Note : Chaque ligne de la feuille correspond à un projet */ - # /* Utiliser la config fournie en Constante */ - # écrire le nom du projet - # écrire le type d'extention - # /* Note : ce sera "SHP" pour les projets conformes et le type - # natif pour les non-conformes */ - # écrire le nombre de fichiers du projet - # écrire l'encodage - # écrire la projection - # écrire la validité (conformité) - # encadrer le "tout" pour délimiter le tableau de la feuille - # Fin Pour - - # /* Ici le rapport doit être correctement produit et remplie */ - -# --produire le dossier de mise à disposition - # créer un dossier "Travail" et un dossier "Livraison" - # --créer l'arborescence du dossier "Travail" - # le dossier Travail devient le working directory - # créer un dossier "00-Cadastre" - # créer un dossier "01-Donnees_Valides" - # créer un dossier "02-Donnees_Invalides - # créer un dossier "03-Production" - # créer un dossier "04-Verif_Geometrie" - # --peupler le dossier "Travail" - # Pour Chaque projet du dictionnaire Faire - # copier les fichiers des projets conforme dans le dossier "01" - # copier les fichiers des projets non-conformes dans le dossier "02" - # Fin Pour - - # /* Ici les dossiers doivent être correctement produit et remplie */ - -# ARRET DU PROGRAMME - - - -# /* TODO Controler qu'il y a bien les 5 necessaires par projet sinon FAIL - # --> a faire dans le controle de conformité de chaque projet */ - -# /* TODO S'assurer que les GPKG et autres non conformes peuplent correctement - # les infos dans les projets --> géré si l'initialisation des - # projets est correctement fait */ +# ~~ Script DORY Digitanie ~~ + +# Voir algorithme.txt pour plus de détails et commentaires + + + +import os # getcwd(), + + +## TODO : voir le pb des dicos qui auraient plusieurs fois les memes clés (se qui n'est pas possible) à cause de plusieurs fichiers qui auraient la meme extension + + + +# - une liste des extensions nécessaires +NECESSAIRES = ["cpg", "dbf", "prj", "shp", "shx"] + +# - une liste des extentions auxiliaires +AUXILIAIRES = ["qix", "qmd", "qml"] + +# - la configuration de la feuille Excel +CONFIG = {"NOM" : "A5", + "TYPE" : "B5", + "NB_FICHIERS" : "C5", + "ENCODAGE" : "D5", + "PROJECTION" : "E5", + "VALIDITE" : "F5"} + + + +# REPRESENTATION DES DONNEES + +class _Fichier: + def __init__(self, + nom_original="Pas de nom original", + chemin="Pas de chemin", + extension="Pas d'extension", + nom= "Pas de nom", + implication="Non-conforme"): + self.nom_original = nom_original # - son nom original - string + self.chemin = chemin # - son chemin - string + self.extension = extension # - son extension - string + self.nom = nom # - son nom formaté - string + self.implication = implication # - son implication - enum + # {"Nécessaire", + # "Auxiliaire", + # "Non-conforme", + # "A-ignorer"} + def afficher(self): + """Affiche dans la sortie standard les éléments du fichier + """ + print("nom : ".center(16), self.nom) + print("nom orig : ".center(16), self.nom_original) + print("ext : ".center(16), self.extension) + print("chemin : ".center(16), self.chemin) + print("implication :".center(16), self.implication) + + def impliquer(self): + """Définir l'implication d'un fichier + + Les fichiers nécessaires sont indispensables sinon l'importation + de la couche échoue. + Les fichiers optionels (ou auxiliaires) contiennent des données + supplémentaires lors de l'importation. + Les fichiers non conformes pourraient être importer dans QGIS. Mais, + ne sont pas conformes au cahier des charges. + Les fichiers ignorés ne fonctionnent pas dans QGIS. + L'implication est définie en fonction de l'extension du fichier. + """ + match self.extension: + case "dbf" | "cpg" | "prj" | "shx" | "shp": + self.implication = "Necessaire" + case "qix" | "qmd" | "qml": + self.implication = "Auxiliaire" + case "gpkg" | "sqlite": + self.implication = "Non-conforme" + case _: + self.implication = "A-ignorer" + # TODO : gerer la casse des extensions pour que le controle se fasse + + + +## TODO Mettre les init de dico à vide {} plutot ?? +class _Catalogue: + def __init__(self, + necessaires, + auxiliaires, + non_conformes + ): + self.necessaires = necessaires # - son dictionnaire de fichiers nécessaires avec pour clé l'extention + # de chaque fichier - dico de paire string : _Fichier + self.auxiliaires = auxiliaires # - son dictionnaire de fichiers auxiliaires avec pour clé l'extention + # de chaque fichier - dico de paire string : _Fichier + self.non_conformes = non_conformes # - son dictionnaire de fichiers non-conformes avec pour clé l'extention + # de chaque fichier - dico de paire string : _Fichier + # PB : Pour le moment cette facon de representer des groupes de fichiers + # ne gèrent pas le fait qu'il y ai plusieurs fichiers avec la meme extension, + # en effet, je ne peux pas avoir plusieurs clés avec la meme extension + + def afficher(self): + """Affiche le catalogue dans la sortie standard + + Affiche aussi un message si pour chaque dictionnaire vide + """ + if self.necessaires: # TODO renvoie False si dico = {} ou alors dois je écrire if necessaires == {} + print("fichiers nécessaires :".center(28)) + for fichier in self.necessaires.values(): + print(" ", fichier.nom, fichier.extension) + else: + print("Pas de Nécessaires".center(28)) + if self.auxiliaires: + print("fichiers auxiliaires :".center(28)) + for fichier in self.auxiliaires.values(): + print(" ", fichier.nom, fichier.extension) + else: + print("Pas d'Auxiliaires".center(28)) + if self.non_conformes: + print("fichiers non conformes :".center(28)) + for fichier in self.non_conformes.values(): + print(" ", fichier.non_conformes) + else: + print("Pas de Non-conformes".center(28)) + + + +class _Projet: + def __init__(self, + nom="Pas de nom", + necessaires = {}, + auxiliaires = {}, + non_conformes = {}, + nb_fichiers=0, + conformite="Non conforme", + projection="Pas de projection", + encodage="Pas d'encodage"): + self.nom = nom # - son nom - string + self.necessaires = necessaires + self.auxiliaires = auxiliaires + self.non_conformes = non_conformes + self.nb_fichiers = nb_fichiers # - son nombre de fichiers - entier + self.conformite = conformite # - sa conformité - bool + self.projection = projection # - sa projection géodésique - string // ou énumération --> voir Constantes + self.encodage = encodage # - son type d'encodage prévu dans QGIS string + # /* pour ce script, ce devrait être forcement "UTF8" */ + + def afficher(self): + """Affiche dans la sortie standard le contenu d'un projet + """ + print("nom : ".center(16), self.nom) + print("nb fichiers :".center(16), self.nb_fichiers) + print("conformité :".center(16), self.conformite) + print("projection :".center(16), self.projection) + print("encodage :".center(16), self.encodage) + print("necessaires :".center(16), self.necessaires) + print("auxiliaires :".center(16), self.auxiliaires) + print("non_conformes :".center(16), self.non_conformes) + #self.catalogue.afficher() + + def cataloguer(self, fichier): + """Catalogue le fichier dans le projet + + La méthode ajoute le fichier suivant son extension + dans un des dictionnaires du catalogue + """ + match fichier.implication: + case "Necessaire": + self.necessaires[fichier.extension] = fichier + case "Auxiliaire": + self.auxiliaires[fichier.extension] = fichier + case "Non-conforme": + self.non_conformes[fichier.extension] = fichier + + def lire_projection(self): + """Récupère la projection des données géomatiques définie. + + Lis la première ligne du fichier *.PRJ du projet + et controle la présence de la chaine "RGF_1993_Lambert_93" + """ + if "prj" in self.necessaires: + df = open(self.necessaires["prj"].chemin) + chaine = df.readline() + df.close() + if "RGF_1993_Lambert_93" in chaine: + self.projection = "LAMBERT93" + else: + print(projet.nom, " : pas de PRJ trouvé --> pas de projection définie") + + def lire_encodage(self): + """Récupère l'encodage prévu pour les fichiers dans QGIS + + Lis la première ligne du fichier *.CPG du projet + et controle la présence de la chaine "UTF-8" + """ + if "cpg" in self.necessaires: + df = open(self.necessaires["cpg"].chemin) + chaine = df.readline() + #print("encod lu : ", chaine) + df.close() + if "UTF-8" in chaine: + self.encodage = "UTF8" + else: + print(projet.nom, " : pas de CPG trouvé --> pas d'encodage définie") + + def valider(self): + """Valide la conformité du projet + + Controle si les 5 fichiers differents nécessaires sont présents. + Controle si la projection est correcte (pour le moment Lambert93). + Controle si l'encodage défini pour l'import dans QGIS est bien UTF8. + Si ces 3 controles sont OK, alors le projet est défini comme valide. + """ + nb_controles_OK = 0 + # Controle présences fichiers + valide = [False, False, False, False, False] + for extension in self.necessaires.keys(): + match extension: + case "dbf": + valide[0] = True + case "cpg": + valide[1] = True + case "prj" : + valide[2] = True + case "shx" : + valide[3] = True + case "shp" : + valide[4] = True + if valide[0] and valide[1] and valide[2] and valide[3] and valide[4]: + nb_controles_OK += 1 + + # Controle projection + if self.projection == "LAMBERT93": + nb_controles_OK += 1 + + # Controle encodage + if self.encodage == "UTF8": + nb_controles_OK += 1 + + # Si les 3 controles sont OK ALors le projet est conforme + if nb_controles_OK == 3: + self.conformite = "Conforme" + + + +# DEFINITIONS DE FONCTIONS + +def formatter(chaine): + """Formate selon nomenclature. + + Formate la chaine de caractères passée en paramètre : + Enlève tous les accents français. Enlève la cédille du C. + Remplace les espaces ' ' et les traits d'union '-' par + des tirets bas '_'. + Ne traite pas pour le moment le AE et OE ligaturé. + """ + #TODO : gérer les accents sur majuscules + #TODO : amélioration ou exercice, utiliser la méthode str.translate() et maketrans + resultat = "" + for c in chaine: + match c: + case "à" | "â" | "ä": + resultat+= "a" + case "é" | "è" | "ê" | "ë": + resultat+= "e" + case "î" | "ï": + resultat+= "i" + case "ô" | "ö": + resultat+= "o" + case "ù" | "û" | "ü": + resultat+= "u" + case "ÿ": + resultat+= "y" + case "ç": + resultat+= "c" + case " " | "-": + resultat+= "_" + case _: + resultat+= c + return resultat + + + + +# DEBUT DU PROGRAMME + +liste = [] # - une liste des fichiers list _Fichier +dico = {} # - un dictionnaire des projets avec pour clé le nom de chaque projet + # dico de paire string : Entité Projet +racine = os.getcwd() # - un chemin absolue vers le repertoire racine à traiter string +print("Racine : ".center(18), racine) + + + +# --recupérer le chemin du dossier à traiter + # Si il y a PAS un dossier de traitement dans le working directory Alors +pas_de_dossier = True + +for a in os.scandir(): + if a.is_dir(): + #il y a un dossier + pas_de_dossier = False +if pas_de_dossier: + print("Pas de dossier trouvé...\nFin de programme\n") + os.system("pause") + # fin du programme + exit() +else: + print(f"Dossier à Traiter trouvé : {a.name}") + racine = a + + +# --analyser le dossier + # initialiser une liste de _Fichiers +liste = [] + # Pour Chaque fichier des dossiers et sous dossiers à explorer Faire +for dossier_courant, list_sousdossiers, list_fichiers in os.walk(racine): ##TODO voir la fonction fwalk qui renvoie un 4-tuple(dirpath, dirnames, filenames, dirfd), and it supports dir_fd + for fichier_courant in list_fichiers: + # --lire, analyser chaque fichier et peupler la liste + # initialiser un _Fichier + ce_Fichier = _Fichier() + # lire son chemin + ce_Fichier.chemin = dossier_courant + "\\" + fichier_courant + # déterminer son nom original et son extension + # lire le nom original + # lire son extension + ce_Fichier.nom_original, ce_Fichier.extension = fichier_courant.split(".") + # formatter et écrire le nom + ce_Fichier.nom = formatter(ce_Fichier.nom_original) + # déterminer son implication + ce_Fichier.impliquer() + # ajouter le _Fichier à la liste + liste.append(ce_Fichier) + # Fin Pour + + # /* Ici la liste des _Fichiers doit être correctement remplie */ + #TEST affichage de la liste de fichier + + # initialiser un dictionnaire de _Projets avec comme clé leurs noms respectifs +print("Init Dico\n") +dico = {} + # Pour Chaque fichier de la liste Faire +for fichier_courant in liste: + if fichier_courant.implication not in "A-ignorer": + # --associer le fichier courant à un projet du dictionnaire + # /* Vérifier que le projet existe déjà dans le dico */ + # Si le nom du fichier courant n'est pas dans le dico Alors + if fichier_courant.nom not in dico: + # initialiser un _Projet + projet = _Projet() + projet.necessaires = {} + projet.auxiliaires = {} + projet.non_conformes = {} + projet.nom = fichier_courant.nom + print("création clé : ", projet.nom) + # ajouter le nom comme clé dans le dictionnaire + # associer le projet à cette clé + dico[projet.nom] = projet + + #test contenu du dico + + # Fin Si + # cataloguer le fichier dans le projet concerné + projet.cataloguer(fichier_courant) + # il y a un fichier de plus au projet + projet.nb_fichiers += 1 + else: + # sinon le fichier est a ignorer + print("Ignoré : ".center(16), fichier_courant.nom_original) + # Fin Pour + + # Pour Chaque projet du dictionnaire Faire +for projet in dico.values(): + # --analyser et completer les infos du projet courant + # /* conformité, projection, encodage etc */ + # lire la projection du projet courant + projet.lire_projection() + # lire l'encodage du projet courant + projet.lire_encodage() + # Si tous les fichiers nécessaires sont présents ET + # la projection est correcte ET + # l'encodage est correct Alors + # passer le projet à conforme + projet.valider() + # Fin Si + # Fin Pour + + # /* Ici le dictionnaire des _Projets doit être correctement remplie */ + + +os.system("pause") + +# --produire le rapport + # créer un classeur Excel + # /* Note : peut être utiliser un modèle pré-config */ + # --mettre en page la première feuille du classeur + # inserer une image + # écrire les nom des colonnes + # écrire les formules de colorations auto des colonnes + + # Pour chaque projet du dictionnaire Faire + # --completer la feuille avec les infos du projet courant + # /* Note : Chaque ligne de la feuille correspond à un projet */ + # /* Utiliser la config fournie en Constante */ + # écrire le nom du projet + # écrire le type d'extention + # /* Note : ce sera "SHP" pour les projets conformes et le type + # natif pour les non-conformes */ + # écrire le nombre de fichiers du projet + # écrire l'encodage + # écrire la projection + # écrire la validité (conformité) + # encadrer le "tout" pour délimiter le tableau de la feuille + # Fin Pour + + # /* Ici le rapport doit être correctement produit et remplie */ + +# --produire le dossier de mise à disposition + # créer un dossier "Travail" et un dossier "Livraison" + # --créer l'arborescence du dossier "Travail" + # le dossier Travail devient le working directory + # créer un dossier "00-Cadastre" + # créer un dossier "01-Donnees_Valides" + # créer un dossier "02-Donnees_Invalides + # créer un dossier "03-Production" + # créer un dossier "04-Verif_Geometrie" + # --peupler le dossier "Travail" + # Pour Chaque projet du dictionnaire Faire + # copier les fichiers des projets conforme dans le dossier "01" + # copier les fichiers des projets non-conformes dans le dossier "02" + # Fin Pour + + # /* Ici les dossiers doivent être correctement produit et remplie */ + +# ARRET DU PROGRAMME + + + +# /* TODO Controler qu'il y a bien les 5 necessaires par projet sinon FAIL + # --> a faire dans le controle de conformité de chaque projet */ + +# /* TODO S'assurer que les GPKG et autres non conformes peuplent correctement + # les infos dans les projets --> géré si l'initialisation des + # projets est correctement fait */