comp.lang.idl-pvwave archive - RDF feed
type: channel
description: Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado
items: Re: envi/idl question from a newbie

Re: envi/idl question from a newbie
type: item
description: I forgot to add: the file is floating point, BSQ, and georeferenced, if that matters any. Regards, Mark ---------- In article <7lg50d$m2c$1@news.NERO.NET>, "Mark Amend" <mark.amend@hmsc.orst.edu> wrote: > Dear IDL group- > > I'm using ENVI 3.1/IDL 5.1 and would like to set pixel values of 0.0 to NaN > in order to carry out some analyses without including 0.0 values. Is there > an easy way to do this with the Band Math function of ENVI, or is there a > quick and dirty IDL solution? > > Thanks for any help > > Sincerely, > > Mark Amend
creator: Mark Amend
date: 1999-07-01T07:00:00-00:00

Re: envi/idl question from a newbie
type: item
description: In article <7lg50d$m2c$1@news.nero.net>, Mark Amend <mark.amend@hmsc.orst.edu> wrote: > Dear IDL group- > > I'm using ENVI 3.1/IDL 5.1 and would like to set pixel values of 0.0 to NaN > in order to carry out some analyses without including 0.0 values. Is there > an easy way to do this with the Band Math function of ENVI, or is there a > quick and dirty IDL solution? image[where(image eq 0)]=!values.f_nan or image=image+!values.f_nan*(image eq 0) ? Eric -- Eric Korpela | An object at rest can never be korpela@ssl.berkeley.edu | stopped. Click for home page.
creator: korpela
date: 1999-07-02T07:00:00-00:00

Re: envi/idl question from a newbie
type: item
description: "Mark Amend" <mark.amend@hmsc.orst.edu> wrote: > I'm using ENVI 3.1/IDL 5.1 and would like to set pixel values of 0.0 to NaN > in order to carry out some analyses without including 0.0 values. Is there > an easy way to do this with the Band Math function of ENVI, or is there a > quick and dirty IDL solution? Mark, I suggest, tentatively, that NaN may not be your best solution here. Some IDL functions / routines are NaN-aware, but some aren't. Some even crash, e.g., MEDIAN() (on WinNT, at least). IDL code that uses straight arithmetic or any of the NaN-oblivious functions - and doesn't filter out or deal with denormal values explicitly - can lead to unexpected results when there are some NaNs in the data stream. I stand to be corrected, but I think that ENVI includes some code like this. (I've come unstuck once or twice with things like an MNF transform of an image that had some NaN values.) In some cases a MASK BAND can be used along with the input to an ENVI function. To make a mask band from a single-band image, use band math with something like: B1 NE 0.0 and then map B1 to the image band on which you want to run the test. But note that (as pointed out by Martin Schultz in a recent post) exact tests on floating-point numbers can be disappointing - it's often best to test for an absolute difference within a small tolerance. Or you could easily make an ENVI ROI from the mask band (or even the original input band, though you might need to make 2 ROIs for your test) with ENVI's "image threshold to ROI" function. This could then be used in the many ENVI operations that accept spatial subsetting by ROI. If you really do want to assign NaN to zero pixels then I'm not aware of a straight way to do it in ENVI's band math. (Band math expressions are equation RHS's, and ENVI unfortunately doesn't permit the use of IDL's test?resultA:resultB expressions here.) But it is very easy to write your own band math functions. You could do this task as follows: Write the following li…
creator: Peter Mason
date: 1999-07-02T07:00:00-00:00