NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[IDV #PHU-486914]: question



Sorry, replace "bitNumber" with "n" in the line before the if statement.

Sean

> Greetings Tilly,
> 
> Add this function to your local Jython library (click "Edit" -> "Formulas" -> 
> "Jython Library", and select "Local Jython" -> "User's Library"), and give it 
> a try:
> 
> def getBit(flag, n):
> """
> return the value of the nth bit of the given flag
> """
> bit_mask = 1 << (bitNumber -1)
> if ((bit_mask & flag) == 0):
> return 0
> else:
> return 1
> 
> (note: if the formatting of this function does not come out right in my 
> message, be sure to add four spaces to everything after the first line [def 
> getBit(flag, n):], and an additional four spaces to the "return" lines)
> 
> Cheers!
> 
> Sean
> 
> 
> > Dear Sean
> > Thank you for your help!
> > I'm dealing with a 32 bit integer.
> > Cheers,
> > Tilly
> >
> > -----Oorspronkelijk bericht-----
> > Van: Unidata IDV Support [mailto:address@hidden]
> > Verzonden: vrijdag 23 september 2011 18:59
> > Aan: Driesenaar, Tilly (KNMI)
> > Onderwerp: [IDV #PHU-486914]: question
> >
> > Greetings Tilly!
> >
> > What kind of interger is QCF (16 bit, 32 bit?)? In Jython 2.6, the bin 
> > operator will be supported, so things will be much easier. However, you 
> > will need to create a bitmask and use the bit-wise operator & to extract 
> > the information you need. If I knew what kind of int you were dealing with, 
> > I could give you an example to extract out the 17th bit.
> >
> > Cheers!
> >
> > Sean
> >
> > > Dear IDV support desk
> > >
> > >
> > >
> > > I would like to plot the information in an integer quality flag in IDV.
> > >
> > > The flag consists of several masks, e.g. the first, or second or 17th
> > > bit are set .
> > >
> > > In python I would use any of the following commands to extract
> > > information from this integer quality flag (say QCF).
> > >
> > > (As you can see I'm especially interested in the 17th bit (or mask value
> > > 2**17) )
> > >
> > >
> > >
> > > bin(int(QCF))[-18]  (look at the value of the 17th bit )
> > >
> > > or
> > >
> > > (int(QCF)/2**17)%2  (so divide by mask value and do modulo 2)
> > >
> > >
> > >
> > > How do I get this into an IDV formula?
> > >
> > > I tried (QCF/2**17)%2 , but that doesn't seem to evaluate in the right
> > > way.
> > >
> > >
> > >
> > > Kind regards,
> > >
> > > Tilly Driesenaar
> > >
> > > KNMI
> > >
> > > The Netherlands
> > >
> > >
> > >
> > >
> > >
> >
> >
> > Ticket Details
> > ===================
> > Ticket ID: PHU-486914
> > Department: Support IDV
> > Priority: Normal
> > Status: Closed
> >
> >
> 


Ticket Details
===================
Ticket ID: PHU-486914
Department: Support IDV
Priority: Normal
Status: Open