#1 Mon 13 October 2008 11:29
- flor
- Participant occasionnel
- Date d'inscription: 7 Oct 2008
- Messages: 17
extraire minimum
Bonjour à tous
ma question est très simple mais je seche depuis qlqs temps dessus : comment extraire le pixel de valeur minimum d'un raster ou alors le point dont un de ses attributs est minimum??
Les sélections ou les requètes sql ne me permettent que de comparer des valeurs avec des autres mais est ce que je peux comparer un pixel avec son pixel voisin?
Merci d'avance si vous avez une réponse à proposer.
Flo
Hors ligne
#2 Mon 13 October 2008 11:45
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: extraire minimum
est ce que tu as l'extension spatial analyst ?
si oui, tu peux faire ce genre de calcul avec
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#3 Mon 13 October 2008 11:53
- flor
- Participant occasionnel
- Date d'inscription: 7 Oct 2008
- Messages: 17
Re: extraire minimum
oui j'ai spatial analyst. J'ai réussie en faisant une statistique zonal et en ragardant où la couche créée était égal au raster en entrée, mais ça me paraissait compliqué pour juste extraire le minimum.
Hors ligne
#4 Mon 13 October 2008 12:00
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: extraire minimum
c'est je crois la manière la plus simple ou sinon tu passes par du code
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#5 Mon 13 October 2008 14:18
Re: extraire minimum
C'est compliqué car tu ne travailles que sur le raster, tu ne peux travailler avec un élément du raster, ou alors tu fais de la vectorisation. Pour les données vecteurs, c'est pareil. Tu ne peux sélectionner un sommet d'un polyligne. Si tu veux faire ça, tu est obligé d'extraire les points de la polyligne.
Une solution peut être de suelement l'afficher. Avec les propriétés de la couche, tu peux avoir le minimum. Tu crées deux classes d'affichages, ce qui te permet d'afficher le pixel min ou max.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#6 Tue 14 October 2008 12:19
- flor
- Participant occasionnel
- Date d'inscription: 7 Oct 2008
- Messages: 17
Re: extraire minimum
Merci bien mais en faite j'avais vraiment besoin d'extraire le point bas d'une coupe pour reconstruire le fil d'eau de ma rivière. mais avec un code j'extrait un rectangle de mon raster et une zone tampon de la forme de ce rectangle, je fais une stat zonal et je compare le résultat de ce minimum avec mon raster rectangle en entrée, et là où ils sont égaux j'extrais le pixel. Aprés je transforme en point et je relis les points. ça me semble bien tiré par les cheveux mais ça marche.
Dans de nombreuses applications j'ai envie de comparer un pixel avec son voisin, je ne comprends pas pourquoi c'est pas possible, avec la calculatrice raster par exemple?
Hors ligne
#7 Tue 14 October 2008 13:13
Re: extraire minimum
Comparer avec son voisin, c'est comme avec les couches vecteurs. Tu ne peux pas faire des opérations d'une ligne à l'autre. Tu as bien quelques fonctions préformatées, mais si tu veux plus, il faut soit trouver le bon script, soit mettre les mains dans le cambouis et aller dans la programmation, et encore, je ne suis pas sûr qu'ArcGIS sait faire.
Pourquoi ? Eh bien, avec le géoréfrencement, tu perd la notion de ligne et colonne. Tu n'as qu'une valeur pour une zone donnée : le pixel. Et encore, le pixel est loin d'être un pixel écran, il peut avoir toutes les formes, selon la projection utilisée.
La seule notion de voisin que tu pourrais surement avoir facilement, c'est la valeur à telle coordonnée.
Si tu veux faire du traitement d'image personnalisé, ce n'est pas le SIG qu'il faut utiliser, ou en tout cas, pas ArcGIS, la notion de géographie est trop profonde.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#8 Tue 14 October 2008 13:43
- freesnowpetrel
- Participant assidu
- Lieu: Pretoria, Afrique du Sud
- Date d'inscription: 1 Mar 2007
- Messages: 222
Re: extraire minimum
Bonjour
Je suis pas sur d'avoir compris exactement ce que tu veux mais tu peux essayer ca dans la calculatrice raster:
Code:
(zonalmin(([raster] * 0),[raster],DATA) == [raster]) * [raster]
Explication :
- ([raster] * 0) cree un raster uniforme correspondant a ton raster avec la valeur 0 partout
- zonalmin(([raster] * 0),[raster],DATA) cree un raster qui contient pour chaque pixel de la zone la valeur minimum de cette zone. Les zones etant definies comme les pixels de meme valeur dans le premier raster en entree donc ici une seule zone puisque raster uniforme avec valeur 0 partout (voir point precedent) -> resultat un raster uniforme avec pour chaque pixel la valeur mini de ton raster.
- zonalmin(([raster] * 0),[raster],DATA) == [raster], ici je compare le raster que je viens de creer avec mon raster d'origine et la ou ils sont egaux j'ai ma valeur minimum, ceci cree un nouveau raster ayant pour valeur 1 aux pixels correspondant a la valeur minimum et 0 ailleurs.
- (zonalmin(([raster] * 0),[raster],DATA) == [raster]) * [raster], pour finir je multiplie le resultat par mon raster de depart pour recuperer mes pixels mini avec ma valeur mini. Resultat un raster avec 2 classes : 0 et ta valeur mini pour tes pixels mini.
Il ne reste plus ensuite qu'a faire un reclassify en remplacant ta classe 0 par NoData et puis une conversion en points et le tour est joue.
Attention ca ne marche que si le mini n'est pas egal a 0 et si tes valeurs sont des nombres entiers
A+
Rodolphe
Dernière modification par freesnowpetrel (Tue 14 October 2008 13:44)
Hors ligne
#9 Tue 14 October 2008 13:51
Re: extraire minimum
Si tu veux passer par la reclassification, autant reclassifier directement en indiquant la valeur du minimum du raster. Pas besoin de formule, même si cette formule est intéressante.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#10 Tue 14 October 2008 14:04
- flor
- Participant occasionnel
- Date d'inscription: 7 Oct 2008
- Messages: 17
Re: extraire minimum
C'est un peu ce que je fais sauf que je ne maitrise pas la calculatrice raster et j'ai fais un model builder. C'est dur de se faire comprendre...désolé par avance. En faite j'ai résolu mon problème c'est juste que je pensais qu'il devait avoir plus simple (un outil minimum tout fait) mais apparement non. Aprés j'élargissais ma question en demandant si on peut comparer deux pixels voisins. Et cela parce que à chaque fois que je cherche à faire qlqch, mon premier reflexe c'est de penser : si ce pixel a une valeur plus grande que son voisin alors ... si il a une valeur plus petite alors... Vous voyez? Une condition if then ça existe?
Hors ligne
#11 Tue 14 October 2008 14:25
- freesnowpetrel
- Participant assidu
- Lieu: Pretoria, Afrique du Sud
- Date d'inscription: 1 Mar 2007
- Messages: 222
Re: extraire minimum
Ben mince alors, c'est vrai ca, un simple reclassify suffit...des fois qu'est-ce qu'on se complique la vie, quand on veux faire trop vite sans reflechir !!!!
Merci Jerome.
Flor je pense que tu fais allusion a des statistiques de voisinage, tu peux regarder les fonctions disponibles ici.
Rodolphe
Dernière modification par freesnowpetrel (Tue 14 October 2008 14:28)
Hors ligne