[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[IDV #HZA-459071]: IDV - NOAA pathfinder v5 sst data
- Subject: [IDV #HZA-459071]: IDV - NOAA pathfinder v5 sst data
- Date: Fri, 01 Sep 2006 10:14:29 -0600
Hi Joseph-
> Thanks for the prompt help. I tried it and the link below and it opened
> one image. The problem is, I am quite new to this IDV software and I was
> wondering how I can, while using the URL, display/stack the data
> together for more than one time. I am trying to access the SST data for
> the Western Indian Ocean for the years between 1985-2005 since I am
> interested in doing a time series analysis. Is there a straightforward
> way to handle this procedure or do I need a script/algorithm to get this
> done. For example, the URL below is for 1 day. In case I want to perform
> a getRequest for a certain time period, how should I change this
> request?
>
>
> http://data.nodc.noaa.gov/cgi-bin/nph-dods/pathfinder/Version5.0_interim
> _NOAA17/Daily/2005/2005002.s04d2pfrt-sst.hdf.dods?sst[0:10:4095][0:10:81
> 91]
You would have to contact the Data provider to see if they have an
DODS/OPeNDAP server that can serve up a sequence of times. I looked
on that site and didn't see any sequences, just averages.
If you were able to get a time series of images, you could use the
following Jython procedure that I sent to your colleague S. Mittra:
def makeUrlTo2DSet(a):
from visad import *
from visad import RealType
from visad import RealTupleType
from visad import Gridded1DDoubleSet
from visad import Gridded2DSet
from ucar.unidata.data.grid import GridUtil
timedom = a.getDomainSet()
numTimes = timedom.getLength()
dom1 = GridUtil.getSpatialDomain(a)
samples = dom1.getSamples(0)
sets = dom1.getSets()
sdomain = Gridded2DSet(RealTupleType.SpatialEarth2DTuple, samples,
sets[0].getLength(), sets[1].getLength(),
dom1.getCoordinateSystem(),
dom1.getSetUnits(),
dom1.getSetErrors(), 0, 0)
image = GridUtil.setSpatialDomain(a,sdomain)
newTime = Gridded1DDoubleSet(RealType.Time, timedom.getSamples(0),
numTimes,
timedom.getCoordinateSystem(),
timedom.getSetUnits(),
timedom.getSetErrors(), 0)
newType = FunctionType(RealTupleType.Time1DTuple, image[0].getType())
timeImage = FieldImpl(newType, newTime)
for i in range(numTimes):
timeImage.setSample(i, image[i],0)
return timeImage
> Also, when I display this data, I am unable to figure out what units the
> range is in. Also, if it is in ASCII, what kind of algorithm should I
> use to convert it to degrees Celsius or degrees Farenheit?
The units listed in the dataset are:
units: "Temp"
which of course is not a valid unit. Guessing from the values,
I would say they are in Celsius. Presently, there is no way
to override the default units in the IDV, but you could
do this with the following Jython formula:
def newUnit(field, varname, unitname):
from ucar.visad import Util
from ucar.unidata.data.grid import GridUtil
newunit = Util.parseUnit(unitname)
newType = Util.makeRealType(varname, newunit)
return GridUtil.setParamType(field, newType)
and when you create the calling formula, set the Formula as:
newUnit(field, name[isuser=true], unitSpec[isuser=true])
the [isuser=true] will pop up a dialog where you can enter a
new name and a unit specification. The unit specifications
must conform to the udunits specifications which can be found here:
http://www.unidata.ucar.edu/software/udunits/udunits.txt
in this particular case, you must enter degC or celsius. C
is the international standard for Coulomb.
Don Murray
Ticket Details
===================
Ticket ID: HZA-459071
Department: Support IDV
Priority: Normal
Status: Open