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 #AXY-187868]: raw data on RAOB?



> Is there any quick way to get a formatted text output for RAOB data
> ingested within IDV? (columns of P , T, Td, Z, wind speed, wind dir)
> 
> I can't seem to find a way to do this anywhere, within the users guide, or
> in the forums.
> 
Hi Marcus,
Attached is a jython script. Add it to your jython library:
http://www.unidata.ucar.edu/software/idv/docs/userguide/tools/Jython.html

The routine is called printSoundings. It writes out each field (temp,td,winds) 
as a separate 2 column listing with the pressure/height X value.

Bring up the jython shell:
http://www.unidata.ucar.edu/software/idv/docs/userguide/tools/JythonShell.html
set a variable to the sounding data:
     sounding = selectData("Sounding Data")
print out the sounding:
     printSoundings(sounding)

You could also create a formula that calls printSoundigs

-Jeff


Ticket Details
===================
Ticket ID: AXY-187868
Department: Support IDV
Priority: Normal
Status: Closed


def printSoundings(d):
        numSoundings = d.getDimension();
        for i in range(numSoundings):
                sounding = d.getComponent(i);
                printSounding(sounding);
                return


def printSounding(sounding):
        from ucar.unidata.util import StringUtil;
        numFields = sounding.getDimension();
        dateTime = sounding.getComponent(0);
        location = sounding.getComponent(1);
        print "date:" + str(dateTime);
        print "location:" + str(location);

        for fieldIdx in range(2,numFields):
                rowBuffers =  ArrayList();
                sb = java.lang.StringBuffer();
                rowBuffers.add(sb);
                field = sounding.getComponent(fieldIdx);
                rangeType= field.getType().getRange();
                domainSamples = field.getDomainSet().getSamples();a
                rows = field.getDomainSet().getLength();
                fieldName= str(field.getType().getRange());
                domainType = field.getDomainSet().getType().getDomain();
                sb.append(str(domainType));
                sb.append(", ");
                fieldName = fieldName.replace("(","");
                fieldName = fieldName.replace(")","");
                sb.append(fieldName);
                for row in range(rows):
                        sb = java.lang.StringBuffer();
                        rowBuffers.add(sb);
                        sb.append(str(domainSamples[0][row]));
                        sb.append(", ");
                        data = field.getSample(row);
                        dataString = str(data);
                        # a hack to deal with the spd/dir tuple
                        dataString = dataString.replace("(","");
                        dataString = dataString.replace(")","");
                        sb.append(dataString);
                print StringUtil.join("\n",rowBuffers);
                print "\n\n";