X
PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 10 Jun 2011 10:18 PM by  anon
Error read grib data with NetCDF-java through IDL java-bridge.
 0 Replies
Sort:
You are not authorized to post a reply.
Author Messages

anon



New Member


Posts:
New Member


--
10 Jun 2011 10:18 PM
    Hi guys: I use the 64bit IDL 8.0.1 java-bridge to read grib data with Netcdf-JAVA. The Netcdf-java package is ftp://ftp.unidata.ucar.edu/pub/netcdf-java/v4.2/toolsUI-4.2.jar, and the grib data is "Historical Unidata Internet Data Distribution (IDD) Gridded Model Data" (http://dss.ucar.edu/datasets/ds335.0/). I use the following commands in IDL workbench to read these grib data and get errors. But running these commands in "IDL Command Line" window. It's ok. So why? IDL> filepathname = file_search("E:\GFS_Global_0p5deg_20100426_0000_anl.grib2") IDL> varNames = nmc_grib_get_variable_names(filePathName) % Jun 11, 2011 12:09:44 PM ucar.grib.grib2.ParameterTable SEVERE: grib2 table reading failed java.lang.IllegalArgumentException: InputStream cannot be null at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:120) at ucar.grib.grib2.ParameterTable.(ParameterTable.java:88) at ucar.grib.GribGridRecord.getParameter(GribGridRecord.java:256) at ucar.grib.GribGridRecord.getParameterDescription(GribGridRecord.java:246) at ucar.grib.GribGridRecord.cdmVariableName(GribGridRecord.java:372) at ucar.nc2.iosp.grid.GridIndexToNC.open(GridIndexToNC.java:135) at ucar.nc2.iosp.grib.GribGridServiceProvider.open(GribGridServiceProvider.java:126) at ucar.nc2.NetcdfFile.(NetcdfFile.java:1318) at ucar.nc2.NetcdfFile.open(NetcdfFile.java:754) at ucar.nc2.NetcdfFile.open(NetcdfFile.java:394) at ucar.nc2.dataset.NetcdfDataset.openOrAcquireFile(NetcdfDataset.java:687) at ucar.nc2.dataset.NetcdfDataset.openDataset(NetcdfDataset.java:424) at ucar.nc2.dataset.NetcdfDataset.openDataset(NetcdfDataset.java:407) at ucar.nc2.dataset.NetcdfDataset.openDataset(NetcdfDataset.java:392) at ucar.nc2.dataset.NetcdfDataset.openDataset(NetcdfDataset.java:379) at com.rsi.idldt.core.ips.IPS_Access.IPS_Start(Native Method) at com.rsi.idldt.core.ips.IPS_Manager$2.run(IPS_Manager.java:383) at java.lang.Thread.run(Thread.java:619) ps: function nmc_grib_get_variable_names, inFile compile_opt idl2, hidden IF SIZE(inFile, /type) EQ 7 THEN BEGIN ; create netcdf dataset oNetcdfDataset = OBJ_NEW("IDLJavaObject$NetcdfDataset", "ucar.nc2.dataset.NetcdfDataset") ; open netcdf file NetcdfFileObj = oNetcdfDataset->openDataset(inFile) ENDIF ELSE BEGIN NetcdfFileObj = inFile ENDELSE ; check object if ~obj_isa(NetcdfFileObj,'IDLJAVAOBJECT$UCAR_NC2_NETCDFFILE') and $ ~obj_isa(NetcdfFileObj,'IDLJAVAOBJECT$UCAR_NC2_DATASET_NETCDFDATASET') then $ message, 'NetcdfFileObj is not valid UCAR_NC2_NETCDFFILE or UCAR_NC2_DATASET_NETCDFDATASET object' ; get variables var = NetcdfFileObj->getVariables() ; get variable array varArr = var->toArray() ; get variable number varNum = var->size() ; create variable name array varNames = strarr(varNum) ; get variable names for i=0L, varNum-1L do begin varNames[i] = varArr[i]->getShortName() endfor ; destroy objects obj_destroy, var obj_destroy, varArr ; destroy file objects IF SIZE(inFile, /type) EQ 7 THEN BEGIN OBJ_DESTROY, oNetcdfDataset OBJ_DESTROY, NetcdfFileObj ENDIF return, varNames end
    You are not authorized to post a reply.