#1 Wed 04 June 2008 17:19
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
mettre NoData en 0 sans reclasser
Je souhaite, comme mon titre l'indique, mettre NoData en 0 sans faire un reclassement pour garder mes autres valeurs et ne pas les changer sur l'echelle 0-255
, tout cela pour pouvoir faire une opération avec un autre raster (maximum entre les 2 rasters pour chaque pixel), car lorsque l'on veut avoir le maximum entre NoData et une valeur, l'outil statistique de cellules donne NoData.
Hors ligne
#2 Wed 04 June 2008 17:45
- Sylvie
- Membre
- Date d'inscription: 5 Sep 2005
- Messages: 3066
Re: mettre NoData en 0 sans reclasser
Bonjour,
Dans la boite de dialogue SpatialAnalyst/Reclassification, le bouton <Unique> vous rend les différentes valeurs du raster. Vous ne modifiez que NoData en 0, vos autres valeurs sont préservées.
Hors ligne
#3 Wed 04 June 2008 17:51
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: mettre NoData en 0 sans reclasser
Bonjour,
Dans la boite de dialogue SpatialAnalyst/Reclassification, le bouton <Unique> vous rend les différentes valeurs du raster. Vous ne modifiez que NoData en 0, vos autres valeurs sont préservées.
Quand je selectionne mon raster, le bouton unique est grisé (inutilisable), ce bouton n'est utilisable que sur des raster déjà reclassés et dont les valeurs sont de 0 à 255.
Hors ligne
#4 Wed 04 June 2008 18:04
- Sylvie
- Membre
- Date d'inscription: 5 Sep 2005
- Messages: 3066
Re: mettre NoData en 0 sans reclasser
Pardon, je n'avais pas bien compris l'énoncé
Je passe ...
Hors ligne
#5 Wed 04 June 2008 20:32
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: mettre NoData en 0 sans reclasser
bonjour,
il me semble que l'outil CON te permet de faire cela.
http://georezo.net/forum/viewtopic.php?pid=93533
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#6 Thu 12 June 2008 17:28
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: mettre NoData en 0 sans reclasser
bonjour,
il me semble que l'outil CON te permet de faire cela.
http://georezo.net/forum/viewtopic.php?pid=93533
Je n'ai pas reussi avec cet outil
Hors ligne
#7 Thu 12 June 2008 17:35
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: mettre NoData en 0 sans reclasser
Voici la syntaxe :
Code:
Con(<condition>, <true_expression>,{<condition>, <true_expression>}, ... {<condition>, <true_expression>}, {false_expression})
si tu essaies ça:
CON([raster]==NoData,0,[raster])
ça te donne quoi ?
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#8 Fri 13 June 2008 09:22
- Vison2Europe
- Participant occasionnel
- Date d'inscription: 13 Sep 2006
- Messages: 25
Re: mettre NoData en 0 sans reclasser
Bonjour,
Pour réaliser ce type de résultat, j'utilise les outils MapAlgebra (sortie unique) de spatial Analyst mais ça doit marcher avec CON aussi.
Enfin Bref, mon expression est :
CON ( ISNULL ( NomRaster ) , 0 , NomRaster )
NomRaster : le nom de ton raster
0 : la valeur que tu souhaites affecter en l'occurence 0 dans ton cas
Bien respectez la synthaxe et les espaces
en espérant avoir été clair.
Hors ligne
#9 Mon 16 June 2008 16:59
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: mettre NoData en 0 sans reclasser
Parfait c'est exactement ce que je voulais, merci.
Hors ligne
#10 Wed 09 July 2008 15:41
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: mettre NoData en 0 sans reclasser
Par contre je n'arrive pas à faire l'inverse, mettre 0 en NoData
lorsque je remplace 0 par NoData dans l'expression, j'ai un message d'erreur
Hors ligne
#11 Wed 09 July 2008 17:15
- Vison2Europe
- Participant occasionnel
- Date d'inscription: 13 Sep 2006
- Messages: 25
Re: mettre NoData en 0 sans reclasser
Bonjour,
Je pense que pour faire l'inverse, mettre (une valeur en NoData) : ce n'est pas la même fonction.
Au lieu de ISNULL utiliser la fonction SETNULL
à essayer
Je suis désolé mais ça tombe assez mal car je pars en congés ce soir.
Si vous n'avez pas de résultat, je regarderais dans dix jours à mon retour.
Je pense que la solution se situe autour de la fonction SETNULL
Hors ligne
#12 Wed 09 July 2008 17:19
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: mettre NoData en 0 sans reclasser
Bonjour,
Je pense que pour faire l'inverse, mettre (une valeur en NoData) : ce n'est pas la même fonction.
Au lieu de ISNULL utiliser la fonction SETNULL
à essayer
Je suis désolé mais ça tombe assez mal car je pars en congés ce soir.
Si vous n'avez pas de résultat, je regarderais dans dix jours à mon retour.
Je pense que la solution se situe autour de la fonction SETNULL
Oui j'ai essayé cette expression :
CON ( SETNULL ( NomRaster ) , 0 , NomRaster )
mais cela ne fonctionne pas, en plus les aides d'arcgis ne sont pas très explicites je trouve
Hors ligne
#13 Wed 09 July 2008 17:37
Re: mettre NoData en 0 sans reclasser
Bonjour,
Je pense que la bonne expression est la suivante (en tout cas, elle fonctionne chez moi) :
CON ( NomRaster == 0 , SETNULL(NomRaster ) , NomRaster)
et non :
CON ( SETNULL ( NomRaster ) , 0 , NomRaster )
PS : Je suis sur ArcMap 9.0 et j´ai utilisé cette formule dans la calculatrice Raster... Quelle est la différence avec l´outil Map Algebra ? Une simple mise à jour dans les versions plus récentes ?
Hors ligne
#14 Wed 09 July 2008 17:38
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: mettre NoData en 0 sans reclasser
En fait cette expression marche :
CON(ha == 0, 10, ha) si on veut remplacer 0 par 10
mais celle ci ne marche pas
CON(ha == 0, NoData, ha)
peut être qu'il ne reconnait pas la valeur NoData écrit tel quel ?
Hors ligne
#15 Wed 09 July 2008 17:43
- sporito
- Participant actif
- Date d'inscription: 4 Mar 2008
- Messages: 126
Re: mettre NoData en 0 sans reclasser
C'est bon j'ai trouvé l'expression :
SETNULL(NomRaster == 0, NomRaster)
merci quand même
Hors ligne