Hi Tom:
Tom Kunicki wrote:
Hello,
We're just delving into NetCDF Java (4.1) for a project.
Right now I am having trouble pulling out the range variables using
FeatureDataset. getDataVariables(). In the code sample below the function
works as expected for the GRID data. For the STATION data we are getting
domain variable names (station.latitude, station.longitude, station.altitude,
etc). I'm new to NetCDF so please understand that I may be making some silly
assumptions...
Some people want the coordinates in the list of data variables, so we
havent tried to hard to remove them. You may want to process that list
for your own needs. What problem are you trying to solve?
Is the issue that the GRID data is CDM compliant while the STAION data is not?
no, thats not the issue
If so, does anyone have a source of CDM compliant station observation data I
could pull against? I did use the CDM validator against the STATION data but
didn't quite understand the output (was hoping for red/green!)
I gave some to Rich Signell yesterday. Are you in the group he's working
with?
Thanks,
Tom
+++ START CODE +++
package gov.usgs.cida.netcdf;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Formatter;
import java.util.List;
import ucar.nc2.VariableSimpleIF;
import ucar.nc2.ft.FeatureDataset;
import ucar.nc2.ft.FeatureDatasetFactoryManager;
/**
*
* @author tkunicki
*/
public class VariableNameTest {
public static List<String> getDataVariableNames(String location) throws
IOException {
if(location == null) {
throw new IllegalArgumentException("location can't be null");
}
Formatter errorFormatter = new Formatter();
FeatureDataset dataset = FeatureDatasetFactoryManager.open(
null, location, null, errorFormatter);
List<String> variableNames = new ArrayList<String>();
for (VariableSimpleIF variable : dataset.getDataVariables()) {
variableNames.add(variable.getName());
}
return variableNames;
}
public static void main(String[] args) {
try {
List<String> list = null;
// Grid Data
System.out.println("Example Grid");
list =
getDataVariableNames("http://motherlode.ucar.edu:8080/thredds/dodsC/fmrc/NCEP/GFS/Hawaii_160km/NCEP-GFS-Hawaii_160km_fmrc.ncd");
for(String name : list) {
System.out.println(" " + name);
}
// Point/Station data
System.out.println("Example Station");
list = getDataVariableNames(
"http://motherlode.ucar.edu:8080/thredds/dodsC/station/metar/Surface_METAR_20100114_0000.nc");
for(String name : list) {
System.out.println(" " + name);
}
} catch (IOException e) {
// don't care...
}
}
}
+++ START CODE +++
Tom Kunicki
Center for Integrated Data Analytics
U.S. Geological Survey
8505 Research Way
Middleton, WI 53562