Quelques bouts de codes très utiles en géomatique

Librairies importantes

Il serait important d'installer :

  • Numpy
  • Rasterio
  • Fiona
  • BeautifulSoup
  • OGR/GDAL
  • Pandas
  • GeoPandas
  • Requests
  • LXML
  • SqlAlchemy

L'idéal est d'installer Anaconda, car toutes ces librairies y sont incluses. On peut simplement faire : conda install ...

Le répertoire data contient des données pour tester les bouts de code.

Vous pouvez voir les manipulations sur la chaîne Youtube : https://www.youtube.com/@YvesVoirin

Lire des données

Le répertoire Reading files donne du code pour lire des fichiers:

  • csv -> read_csv.py (avec csv)
  • json -> read_json.py (avec json)
  • xml -> read_from_web.py ou read_xml.py (avec bs4)
  • Gtiff (ou autres formats matriciels) -> read_geotiff.py (avec gdal)
  • shapefile (ou autres fichiers spatiaux) -> read_vector.py (avec ogr)
  • Gtiff (ou autres avec rasterio) -> read_raster_with_rasterio.py (avec rasterio)
  • Gtiff (ou autres avec opencv) -> read_raster_with_opencv.py (avec opencv)
  • Vecteurs (avec fiona) -> read_vector_with_fiona.py (avec fiona)

Le répertoire Reading from DB donne des exemples d'échanges avec une base de données PostgreSQL/PostGIS:

  • PostgreSQL/PostGIS -> read_from_postgis.py (avec ogr)
  • PostgreSQL/PostGIS -> transfer_ToFrom_PostgreSQL_PostGIS.py (avec pandas, geopandas, sqlalchemy)

Écrire des données

Le répertoire Creating files donne du code pour écrire des fichiers:

  • Gtiff (ou autres formats matriciels) -> write_geotiff.py (avec GDAL)
  • Gtiff (ou autres formats matriciels) -> write_geotiff_with_rasterio.py (avec rasterio)
  • shapefile (ou autres fichiers spatiaux) -> write_shpfile.py (avec ogr) en utilisant GDAL/OGR on peut faire des shapefiles (ou autres fichiers spatiaux)
  • shapefile (ou autres fichiers spatiaux) -> write_shpfile_with_fiona.py (avec fiona)

Le répertoire Projections donne des exemples de manipulations de projection:

  • Reprojeter une géométrie avec OSR -> reproject_data.py (avec ogr, osr)
  • Reprojeter une image et rééchantillonner avec GDAL -> resample_image.py (avec gdal)
  • Reprojeter une image avec rasterio -> reproject_raster_with_rasterio.py (avec rasterio)
  • Reprojeter un vecteur avec fiona -> reproject_vector_with_fiona.py (avec fiona)

Manipuler les géométries

Le répertoire Using shapely donne des exemples avec shapely :

  • Quelques opérations de base avec shapely -> some_basics_with_shapely.py (shapely)

Traiter les données

Le répertoire Using Numpy donne des exemples avec la lib Numpy:

  • Faire une fenêtre glissante 1D -> simple_moving_window.py (avec numpy)

Le répertoire Using Pandas donne des exemples avec la lib Pandas:

  • Faire un Dataframe à partir d'un CSV -> read_csv_with_pandas.py (avec pandas)

Le répertoire Image processing donne des exemples de traitements d'image :

  • Appliquer MobileNet avec Opencv -> OpenCV_MobileNet.py (opencv, numpy)
  • Traitements de base avec Opencv -> simple_processing_with_opencv.py (opencv)
  • Découper une image comme un puzzle -> simple_processing_with_pil.py (avec pil)
  • Découper une image à partir d'un vecteur -> clip_raster_with_vector.py (avec fiona et rasterio)

Le répertoire Spatial Analysis donne des exemples d'analyses spatiales :

  • Convertir une matrice en un vecteur -> From_Raster_to_Vector.py (avec ogr, gdal, osr)
  • Convertir un fichier de ligne en un réseau -> Get_circuit.py (avec ogr, networkx)
  • Extraire les entités sous un masque -> Get_features_under_the_mask.py (avec ogr)
  • Rechercher le chemin le plus court -> Get_shortest_path.py (avec ogr, networkx)
  • Utiliser un index spatial -> using_rtree.py (avec fiona, rtree)
  • Vectoriser une image -> From_Raster_to_Vector_with_fiona_rasterio.py (avec fiona et rasterio)
  • Rasteriser un vecteur -> From_Vector_to_Raster_with_fiona_rasterio.py (avec fiona et rasterio)

Le répertoire Using GeoNames donne un exemple d'usage de GeoNames

  • Rechercher la position d'une entité géographique à l'aide du nom -> search_with_geonames.py (avec requests, json)

Afficher les résultats

Le répertoire Using Matplotlib donne des exemples avec la lib Matplotlib

  • Faire un simple graphique avec matplotlib -> create_simple_figure.py (avec matplotlib)

Faire des rapports

Le répertoire Creating report donne des exemples avec la lib DocxTemplate

  • Parcourir un répertoire de données spatiales et faire un rapport -> create_report.py (avec glob, rasterio, fiona, docxtpl)

Extraire des données du web avec Scrapy

Le répertoire Using Scrapy donne un exemple de spider qui parcourt un site web et qui fait l'extraction de données. Il sauvegarde les résultats dans un fichier csv.

Quelques opérations utiles en géomatique

Le répertoire utils donne des exemples de scripts souvent utiles :

  • Partir d'observations ponctuelles et construire une grille interpolée -> from_vector_to_mesh.py (avec numpy, scipy, shapely, fiona, rasterio)
  • Partir de données XML du web et construire un shapefile -> from_xml_web_to_shp_file.py (bs4, fiona, shapely)
  • Extraire la liste de fichiers d'un répertoire -> get_files_in_directory.py (avec glob)
  • Quelques astuces du langage Python -> somebasics.py

Utiliser DJANGO

Le répertoire Using django donne un exemple de site web en Python avec une carte