#1 Tue 17 March 2009 13:01
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
"Overlap" linéaire sur surfacique ...
Bonjour,
j'ai une question Mapinfo sur un besoin a priori "basique" mais que je n'arrive pas à résoudre pour le moment : Je cherche à calculer la façon dont un linéaire (par ex. "cours d'eau"...) se répartit par rapport à une couche surfacique (par ex. "communes" de mon département) ...
Cela est-il possible facilement ?
Je voulais utiliser les fonction ProportionOverlap de Mapinfo mais manifestement cela ne semble applicable que pour des objets surfaciques.
Comment procéder dans mon cas de figure ?
Merci d'avance.
Hors ligne
#2 Tue 17 March 2009 13:54
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: "Overlap" linéaire sur surfacique ...
Bonjour
Pas de surface pour les lignes, polylignes et points...et ce dans n'importe quel SIG !!
Donc il faut soit se cantonner aux longueurs, soit, si on tient aux surfaces, transformer le cours d'eau en polygone (en créant un tampon)
A vous de voir en fonction de votre besoin précis
Hors ligne
#3 Tue 17 March 2009 14:57
- olivier Ad
- Juste Inscrit !
- Date d'inscription: 3 Jan 2006
- Messages: 5
Re: "Overlap" linéaire sur surfacique ...
Pour avoir la longueur de chaque portion du cours d'eau traversant chaque commune :
1- utiliser l'outil "découper" pour l'objet cours d'eau avec l'ensemble des polygones représentant les communes
2- affecter l'identifiant de chaque commune (nom, n°INSEE) dans une nouvelle colonne de la table du cours d'eau (Mise à jour Table avec une jointure de type géographique)
3- mettre à jour un champ longueur avec la fonction CartesianObjectLen
Puis calculer la proportion si c'est ce qui vous intéresse.
Hors ligne
#4 Tue 17 March 2009 18:24
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
Re: "Overlap" linéaire sur surfacique ...
Je ne m'attendais pas à ce qu'une ligne ait jamais une surface ... mais aucun logiciel de SIG n'est capable de répondre rapidement à cette question ... qui parait si basique d'un point de vue géométrique ?
ça m'interpelle un peu ...
Dernière modification par snaileater (Tue 17 March 2009 18:31)
Hors ligne
#5 Tue 17 March 2009 18:31
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
Re: "Overlap" linéaire sur surfacique ...
Si je fais un tout petit tampon autour du réseau hydrographique ... le ratio que va me retourner ProportionOverlap sera quasiment ce que je veux trouver (proportion du linéaire traversant chaque commune) ... ? La seule source d'erreur sera les extrémités des tronçons ... je suppose ?
Et par contre si je teste l'autre méthode ... ou trouve-t-on l'outil "découper" ?
Hors ligne
#7 Tue 17 March 2009 20:03
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: "Overlap" linéaire sur surfacique ...
Puisqu'on sait qu'une ligne n'a pas de surface...intéressons nous à sa longueur:
- soit en découpant: menu Objets->Découper
- soit directement par une requête (ici au format FMB):
select communes.code, objectlen(overlap(coursdeaux.obj, communes.obj), "km") "longueur" from coursdeaux, communes where coursdeaux.obj intersects communes.obj
Affiche une table des codes communes avec la longueur en km de chaque intersection avec coursdeaux
select communes.code, coursdeaux.ID, sum(objectlen(overlap(coursdeaux.obj, communes.obj), "km")) "longueur" from coursdeaux, communes where coursdeaux.obj intersects communes.obj order by communes.code group by communes.code, coursdeaux.ID
Affiche une table avec le code commune, l'identifiant du cours d'eau, la longueur cumulée par commune et identifiant du cours d'eau
Le tout, à lire impérativement (!), ... se trouve ici, en particulier dans l'Addendum du 17 décembre 2002
Dernière modification par Maurice (Tue 17 March 2009 20:04)
Hors ligne
#8 Tue 17 March 2009 20:31
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: "Overlap" linéaire sur surfacique ...
Je ne m'attendais pas à ce qu'une ligne ait jamais une surface ... mais aucun logiciel de SIG n'est capable de répondre rapidement à cette question ... qui parait si basique d'un point de vue géométrique ?
ça m'interpelle un peu ...
Salut
Pour ajouter à la compréhension, est-ce qu'un point a une superficie? D'un point de vue géographique, NON. Mais un point peut très bien être une tête d'épingle, un poteau électrique, une piscine... Là, la notion d'échelle entre en jeu.
Une ligne. D'un point de vue géographique, c'est un segment relié par 2 points. Donc, il n'y a pas de superficie. Seulement, encore avec la notion d'échelle, votre cours d'eau a une superficie sur le terrain mais la cartographie à une certaine échelle il n'y en a pas. Votre solution est donc bonne mais ne reflète pas la réalité.
Daniel
De retour à la géomatique
Hors ligne
#9 Wed 18 March 2009 18:44
- snaileater
- Participant actif
- Date d'inscription: 5 Nov 2008
- Messages: 121
Re: "Overlap" linéaire sur surfacique ...
Puisqu'on sait qu'une ligne n'a pas de surface...intéressons nous à sa longueur:
- soit en découpant: menu Objets->Découper
- soit directement par une requête (ici au format FMB):select communes.code, objectlen(overlap(coursdeaux.obj, communes.obj), "km") "longueur" from coursdeaux, communes where coursdeaux.obj intersects communes.obj
Affiche une table des codes communes avec la longueur en km de chaque intersection avec coursdeauxselect communes.code, coursdeaux.ID, sum(objectlen(overlap(coursdeaux.obj, communes.obj), "km")) "longueur" from coursdeaux, communes where coursdeaux.obj intersects communes.obj order by communes.code group by communes.code, coursdeaux.ID
Affiche une table avec le code commune, l'identifiant du cours d'eau, la longueur cumulée par commune et identifiant du cours d'eau
Le tout, à lire impérativement (!), ... se trouve ici, en particulier dans l'Addendum du 17 décembre 2002
Ah ... voila LA réponse à ma question ... je ne connaissais pas cet "overlap" (tout court) ... qui donc apparemment retourne un objet ...
Si on peut faire cela directement par requête pourquoi commencer à découper les objets ... hein ?
Et donc en interne Mapinfo est donc bien capable de nous retourner la résultat d'une intersection entre un objet linéaire et un objet surfacique ... ce qui est bien utile ... mais n'a pas de "vrai" sens géométrique ...
;-p
Hors ligne