From 98a3a545e092df60d7cfad78e6fb3602e186aad1 Mon Sep 17 00:00:00 2001 From: Colas Geier Date: Tue, 14 Oct 2025 17:31:40 +0200 Subject: [PATCH] init --- 5_GEONATURE/EXPORT/get_zh_fromapi.py | 38 ++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 5_GEONATURE/EXPORT/get_zh_fromapi.py diff --git a/5_GEONATURE/EXPORT/get_zh_fromapi.py b/5_GEONATURE/EXPORT/get_zh_fromapi.py new file mode 100644 index 0000000..c6ae0c3 --- /dev/null +++ b/5_GEONATURE/EXPORT/get_zh_fromapi.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- + +import geopandas as gpd +import requests +from os import path +import io + +def get_zh(geom=None): + url = 'https://geonature.cen-isere.fr/geonature/api/exports/api/9?limit=30000&{geo}' + if not geom.empty : + if geom.crs.srs.lower() != 'epsg:4326': + geom.to_crs(4326,inplace=True) + if gpd.__version__ >='1.0.0': + geometry = 'geometry={geom}'.format(geom=geom.union_all().wkt) + else: + geometry = 'geometry={geom}'.format(geom=geom.unary_union.wkt) + else: + geom = '' + r = requests.get(url.format(geo=geometry)) + if r.status_code == 200: + d = r.json() + data = d['items']['features'] + p = [i['properties'] for i in data] + g = [i['geometry'] for i in data] + df = gpd.GeoDataFrame.from_features(data,crs=4326) + + return df + +if __name__ == "__main__": + + PATH = '/media/colas/Disk2/tmp/GEONATURE/ST MARTIN URIAGE' + FILE = 'ZH ENS POUR CEN 14102025.gpkg' + f = gpd.read_file(path.join(PATH,FILE)) + df = get_zh(f) + # df[df.dtypes==object] = df[df.dtypes==object].astype(str) + df.to_file(path.join(PATH,'inventaire_zoneshumides_seglieres.gpkg')) + # df.to_file(path.join(PATH,'inventaire_zoneshumides_seglieres.geojson')) \ No newline at end of file