Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Mon 28 November 2022 11:56

Thais781
Participant occasionnel
Date d'inscription: 24 Oct 2022
Messages: 25

Geopandas Distance entre point et polygon

Bonjour,

Cf. l'image ci-joint.
J'ai un polygon (en bleu) et un point (celui en orange)
Et je cherche a calculer les points de contact les plus proches entre ce point et le polygon

Pour le moment, je trace un cercle a partir du point orange et je fais évoluer le diamètre jusqu'a qu'il touche (intercepts) le polygone et j'ai donc le point de contact.

Cette solution est un peu ... bourin ... peut être qu'il existe une solution plus élégante pour obtenir ces point (les verts dans le dessin)

N'hésitez pas si vous avez une idée ;-)

Thais


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Mon 28 November 2022 13:37

Marion Robin
Juste Inscrit !
Date d'inscription: 10 Oct 2011
Messages: 7

Re: Geopandas Distance entre point et polygon

Bonjour,

Il y a la fonction Shapely nearest_points qui fait ça. Je viens de tester et ça a l'air de plutôt bien fonctionner :-)

import geopandas as gpd
from shapely.geometry import Polygon, Point
from shapely.ops import nearest_points

poly = Polygon([(4.338074,50.848677), (4.344961,50.833264), (4.366227,50.840809), (4.367945,50.852455), (4.346693,50.858306)])
poly = gpd.GeoSeries(poly, crs='EPSG:3395')
point = gpd.GeoSeries([Point(4.382617,50.811948)], crs='EPSG:3395')

nearest_edge, _ = nearest_points(poly[0], point[0])
nearest_edge = gpd.GeoSeries(nearest_edge, crs='EPSG:3395')

ax = poly.plot()
point.plot(ax=ax, color='red')
nearest_edge.plot(ax=ax, color='green')

Hors ligne

 

#3 Tue 29 November 2022 16:04

Thais781
Participant occasionnel
Date d'inscription: 24 Oct 2022
Messages: 25

Re: Geopandas Distance entre point et polygon

Merci Marion
C'est effectivement beaucoup plus propre comme ca ;-)

Hors ligne

 

Pied de page des forums

Powered by FluxBB