Python >> Tutoriel Python >  >> Python Tag >> Pandas

Arrondir les coordonnées à 5 décimales dans GeoPandas ?

Je recommande de rechercher topojson et mapshaper car ces outils ont été créés pour simplifier intelligemment les formes, en préservant la topologie. Les deux outils sont écrits en javascript. Mapshaper a une option de précision pour la sortie. Vous pouvez exécuter Mapshaper via un site Web, mapshaper.org ou télécharger les outils de ligne de commande.


Vous pouvez utiliser le module regex pour trouver les coordonnées dans une représentation wkt des géométries, arrondir et recharger :

import geopandas as gpd
from shapely.wkt import loads
import re

simpledec = re.compile(r"\d*\.\d+")
def mround(match):
    return "{:.5f}".format(float(match.group()))

shapefile = '/home/bera/GIS/data/test/polys.shp'
df = gpd.read_file(shapefile)
df.geometry = df.geometry.apply(lambda x: loads(re.sub(simpledec, mround, x.wkt)))
df.to_file('/home/bera/GIS/data/test/polys_round.shp')

Voir :Arrondir à l'aide d'expressions régulières

Ou essayez ceci :est-il possible d'arrondir toutes les coordonnées de manière harmonieuse ?