comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: storing in array
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: storing in array [message #60420 is a reply to message #60221] Mon, 12 May 2008 10:29 Go to previous message
kishore1818 is currently offline  kishore1818
Messages: 24
Registered: June 2007
Junior Member
On May 12, 1:06 pm, Spon <christoph.b...@gmail.com> wrote:
> On May 12, 4:35 pm, kishore1...@gmail.com wrote:
>
>
>
>> Hi,
>> Thanks for your suggestions, I modified according your suggestions.
>> Pl. go through my program
>> pro vfm_feature_flags1,val
>
> FUNCTION VFM_FEATURE_FLAGS1, Input
>
>
>
>> ;  this routine demonstrates how to read and extract values from a
>> feature
>> ;  classification flag 16-bit integer value in CALIPSO Level 2
>> Vertical
>> ;  Feature Mask files
>> ;
>> ;  INPUT:
>> ;  val - the feature classification flag value to be decoded
>> ;
>> ;  OUTPUT:
>> ;  all information is printed into the IDL log window
>
>  ; Make sure input is usable
> IF Input GT 65535L OR Input LT -32767L THEN $
>   MESSAGE, 'Input not a 16-bit flag.'
>
>  ; Convert input to 16-bit value
> Val = UINT(Input)
>
>
>
>> print, val
>
>> feature_type = 0
>> feature_type_qa = 0
>> ice_water_phase = 0
>> ice_water_phase_qa = 0
>> feature_subtype = 0
>> cloud_aerosol_psc_type_qa = 0
>> horizontal_averaging = 0
>
>> Output = { feature_type:"",                   $
>>            feature_type_qa:"",                $
>>            ice_water_phase:"",                $
>>            ice_water_phase_qa:"",             $
>>            feature_subtype:"",                        $
>>            cloud_aerosol_psc_type_qa:"",      $
>>            horizontal_averaging:""}
>
>> for i=0,15 do begin
>>   if ((val and 2L^i) NE 0) then begin
>>     print,'Bit set: ',i+1
>>     case i+1 of
>>     1 : feature_type = feature_type + 1
>>     2 : feature_type = feature_type + 2
>>     3 : feature_type = feature_type + 4
>>     4 : feature_type_qa = feature_type_qa + 1
>>     5 : feature_type_qa = feature_type_qa + 2
>>     6 : ice_water_phase = ice_water_phase + 1
>>     7 : ice_water_phase = ice_water_phase + 2
>>     8 : ice_water_phase_qa = ice_water_phase_qa + 1
>>     9 : ice_water_phase_qa = ice_water_phase_qa + 2
>>     10 : feature_subtype = feature_subtype + 1
>>     11 : feature_subtype = feature_subtype + 2
>>     12 : feature_subtype = feature_subtype + 4
>>     13 : cloud_aerosol_psc_type_qa = cloud_aerosol_psc_type_qa + 1
>>     14 : horizontal_averaging = horizontal_averaging + 1
>>     15 : horizontal_averaging = horizontal_averaging + 2
>>     16: horizontal_averaging = horizontal_averaging + 4
>>     else:
>>     endcase
>>   endif
>> endfor
>
>> case feature_type of
>> 0 : Output.Feature_Type = 'invalid (bad or missing data)'
>> 1 : Output.Feature_Type = 'clear air"
>> 2 : begin
>>       Output.Feature_Type = 'cloud'
>>       case feature_subtype of
>>       0 : Output.Feature_Subtype = 'low overcast, transparent'
>>       1 : Output.Feature_Subtype = 'low overcast, opaque'
>>       2 : Output.Feature_Subtype = 'transition stratocumulus'
>>       3 : Output.Feature_Subtype = 'low, broken cumulus'
>>       4 : Output.Feature_Subtype = 'altocumulus (transparent)'
>>       5 : Output.Feature_Subtype = 'altostratus (opaque)'
>>       6 : Output.Feature_Subtype = 'cirrus (transparent)'
>>       7 : Output.Feature_Subtype = 'deep convective (opaque)'
>>       else : Output,'*** error getting Feature Subtype'
>
> ELSE : Output.Feature_Subtype = '*** error getting Feature Subtype'
>
>>       endcase
>>     end
>> 3 : begin
>>       Output.Feature_Type = 'aerosol'
>>       case feature_subtype of
>>       0 : Output.Feature_Subtype = 'not determined'
>>       1 : Output.Feature_Subtype = 'clean marine'
>>       2 : Output.Feature_Subtype = 'dust'
>>       3 : Output.Feature_Subtype = 'polluted continental'
>>       4 : Output.Feature_Subtype = 'clean continental'
>>       5 : Output.Feature_Subtype = 'polluted dust'
>>       6 : Output.Feature_Subtype = 'smoke'
>>       7 : Output.Feature_Subtype = 'other"
>>       else : Output,'*** error getting Feature Subtype'
>
> ELSE : Output.Feature_Subtype = '*** error getting Feature Subtype'
>
>>       endcase
>>     end
>> 4 : begin
>>       Output.Feature_Type = 'stratospheric feature--PSC or
>> stratospheric aerosol'
>>       case feature_subtype of
>>       0 : Output.Feature_Subtype = 'not determined'
>>       1 : Output.Feature_Subtype = 'non-depolarizing PSC'
>>       2 : Output.Feature_Subtype = 'depolarizing PSC'
>>       3 : Output.Feature_Subtype = 'non-depolarizing aerosol'
>>       4 : Output.Feature_Subtype = 'depolarizing aerosol'
>>       5 : Output.Feature_Subtype = 'spare'
>>       6 : Output.Feature_Subtype = 'spare'
>>       7 : Output.Feature_Subtype = 'other'
>>       else : Output,'*** error getting Feature Subtype'
>
> ELSE : Output.Feature_Subtype = '*** error getting Feature Subtype'
>
>>       endcase
>>     end
>> 5 : Output.Feature_Type = 'surface'
>> 6 : Output.Feature_Type = 'subsurface'
>> 7 : Output.Feature_Type = 'no signal (totally attenuated)'
>> else : Output,'*** error getting Feature Type'
>
> ELSE : Output.Feature_Type = '*** error getting Feature Type'
>
>> endcase
>
>> case feature_type_qa of
>> 0 : Output.Feature_Type_QA = 'none'
>> 1 : Output.Feature_Type_QA = 'low'
>> 2 : Output.Feature_Type_QA = 'medium'
>> 3 : Output.Feature_Type_QA = 'high'
>> else : Output,'*** error getting Feature Type QA'
>
> ELSE : Output.Feature_Type_QA = '*** error getting Feature Type QA'
>
>> endcase
>
>> case ice_water_phase of
>> 0 : Output.Ice_Water_Phase = 'unknown/not determined'
>> 1 : Output.Ice_Water_Phase = 'ice'
>> 2 : Output.Ice_Water_Phase = 'water'
>> 3 : Output.Ice_Water_Phase = 'mixed phase'
>> else : Output,'*** error getting Ice/Water Phase'
>
> ELSE : Output.Ice_Water_Phase = '*** error getting Ice/Water Phase'
>
>> endcase
>
>> case ice_water_phase_qa of
>> 0 : Output.Ice_Water_Phase_QA = 'none'
>> 1 : Output.Ice_Water_Phase_QA = 'low'
>> 2 : Output.Ice_Water_Phase_QA = 'medium'
>> 3 : Output.Ice_Water_Phase_QA = 'high'
>> else : Output,'*** error getting Ice/Water Phase QA'
>
> ELSE : Output.Ice_Water_Phase_QA = '*** error getting Ice/Water Phase
> QA'
>
>
>
>> endcase
>
>> if (cloud_aerosol_psc_type_qa eq 0) then begin
>>   Output.Cloud_Aerosol_PSC_Type_QA = 'not confident'
>> endif else begin
>>   Output.Cloud_Aerosol_PSC_Type_QA = 'confident'
>> endelse
>
>> case horizontal_averaging of
>> 0 : Output.Horizontal_averaging = 'not applicable'
>> 1 : Output.Horizontal_averaging = '1/3 km'
>> 2 : Output.Horizontal_averaging = '1 km'
>> 3 : Output.Horizontal_averaging = '5 km'
>> 4 : Output.Horizontal_averaging = '20 km'
>> 5 : Output.Horizontal_averaging = '80 km'
>> else : Output,'*** error getting Horizontal averaging'
>
> ELSE : Output.Ice_Water_Phase = '*** error getting Ice/Water Phase'
>
>
>
>
>
>> endcase
>> help,Output,/structure
>> ;Return, Output
> RETURN, Output
>> end
>> Using above routine I wrote a small progam
>> data1=[44474, 36282, 28602, 28090]
>
>> for i=0,3 do begin
>>     ;vfm_feature_flags,data1(i)
>>     vfm_feature_flags1,data1(i)
>>     pause='' & read,pause
>
>> endfor
>> end
>
>> Only, problem is how to recall output parameters.
>
> Replace this very first line:
> pro vfm_feature_flags,val
>
> with
>
> function vfm_feature_flags,val
>
> then, down at the very end of the programme, remove the comment-out
> from this line
>  ;Return, Output
>
> IDL has two types of programmes, 'procedures' and 'functions'.
> Functions will return an output. Procedures can only alter input
> parameters (although this can be used to effectively give output too).
> Functions are called slightly differently to procedures, though the
> code language in them is identical apart from the 'Return, A_Value'
> thing.
>
> To call the function, use:
> result = vfm_feature_flags(value)
>
> e.g.
> myoutput = vfm_feature_flags(36282u)
>
> Then you can look at the content of the output like this:
> help, myoutput, /structure
>
> or something like this:
> print, myoutput.feature_type
> to get a single output field from the structure.
>
> Regards,
> Chris

Hi Chris,

Now, its working fine, thanks a lot for your kind help.
This forum is very good for new IDL guys.

Regards,

Kishore
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: How to HIDE a WIDGET_BUTTON and dont hide the widget hierarchy ?
Next Topic: Re: not yet another workbench workspace question!?!

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 12:42:25 PDT 2025

Total time taken to generate the page: 1.84149 seconds