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.
>From: "Alan Bol" <address@hidden> >Organization: UCAR/COMET >Keywords: 200505061823.j46INOww020628 IDV topography Hi Alan- >Institution: COMET >Package Version: 1.2b2 >Operating System: os.name:Windows XP; os.arch:x86; os.version:5.1; >Hardware Information: java.vendor:Sun Microsystems Inc.; java.version:1.4.2_01 > ; java.home:C:\\Program Files\\IDV_1.2b2\\jre; >Inquiry: Hi all, > >I've been having a heck of a time displaying any topgraphic data in 3d other t > han the 80km Eta >off the unidata or ucar catalogs. > >Here's where I'm trying to go at the moment: >NARR 3-hr precip displayed on topography. > >At the moment, I'm trying to get NAM topography to display in 3d. >In the data selector, here's what I have: >Data Source: dod://nomad3.ncep.noaa.gov:9090/dods/nam/nam20050506/nam_00z >Fields: ** surface geopotential height (gpm) >Displays: 3D surface/Topography >Times: top one > >Note: I can create a 2D plot of countours. > >Under display/3D surface, I didn't originally see Topography listed, so >I created an alias for ALTITUDE of "hgtsfc", so that it will display as topog > raphy. Wow, good job figuring that out! >When I try to create a 3d topo display, I get the following erroro message: > >An error has occurred: >ControlDescriptor.Creating display >Unable to handle units of hgtsfc_0 > >I can infer from this that IDV doesn't like the units gpm (geopotential meters > ?). Is there anything can >be done to change this? Is there some other way to create this plot? The problem is that the data is coming from the GrADS/DODS Server (GDS) and it does not always add on units. Even though the name says that the units are GPM, there is no units attribute for the variable. Parsing the unit from the variable name is problematic. So, in reality, what you have is blank units which are not convertible with gpm, thus the error. If you plot this field as contours and use the Edit->Change Display Unit.. menu from the control, you'll see that the units being used are blank (dimensionless). In fact, all the parameters come across as dimensionless units, so you can't change units on any of them in the IDV (at least easily). The real solution is to get the GDS to add in the appropriate unit. Do you know who's in charge of this server? We got NCDC to add units to their GDS data. Do you have a contact a NCEP that we could persuade? In the mean time, if you really want to display this field as topography, then: 1) Use the Edit->Formulas->Jython Library menu to open the Jython library editor. Paste the following code into the window (Ctrl-V to paste): def makeAltitude(field): import ucar.unidata.data.grid.GridUtil as gu a = makeRealType("gpm", makeUnit("gpm")) return gu.setParamType(field, a) 2) Use the Edit->Formulas->Create Formula menu to create a new formula with the following parameters: Name: make topography Formula: makeAltitude(field) Optional: Under advanced, you can set the display type to be only Topography. 3) Load in your dataset. From the DataSelector panel, select the Formulas Data Source and select the make topography formula in the Fields panel. Make sure the Topography Display is selected, then click the Create Display button. 4) When the parameter selection window pops up, select the "surface geopotential height [gpm]" field, and the first time, then click OK. That will create the topography. If you want to overlay another field on this, select the field and the "XXX over topography" display you want. When the Field Selector comes up, select "Any Field" from the list of System formulas and click OK. Then when the Field Selector comes up for the "Any Field" param, select the "make topography" field in the list of formulas and follow step 4 above. Convoluted, but it works. ;-) Some of these datasets also have wierd 3D vertical coords, which cause problems. >****************** >Stack trace: >visad.VisADException: Unable to handle units of hgtsfc_0 > at ucar.unidata.view.geoloc.MapProjectionDisplay.addVerticalMap(MapProj > ectionDisplay.java:518) > at ucar.unidata.idv.control.GridDisplayControl.addTopographyMap(GridDis > playControl.java:422) > at ucar.unidata.idv.control.TopographyControl.setData(TopographyControl > .java:133) > at ucar.unidata.idv.control.TopographyControl.init(TopographyControl.ja > va:115) > at ucar.unidata.idv.control.DisplayControlImpl.init(DisplayControlImpl. > java:918) > at ucar.unidata.idv.control.DisplayControlImpl.init(DisplayControlImpl. > java:769) > at ucar.unidata.idv.ControlDescriptor.initControl(ControlDescriptor.jav > a:741) > at ucar.unidata.idv.ControlDescriptor$1.run(ControlDescriptor.java:699) > at ucar.unidata.util.Misc$2.run(Misc.java:773) > Don NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.