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.
Hello Devanshi You need to do: ncFile.findVariable("ScienceData/Latitude"); This should solve the problem. Are you working with SAC/ISRO? Ghansham On 03/27/2014 01:10 AM, visad-request@xxxxxxxxxxxxxxxx wrote:
Send visad mailing list submissions to visad@xxxxxxxxxxxxxxxx To subscribe or unsubscribe via the World Wide Web, visit http://mailman.unidata.ucar.edu/mailman/listinfo/visad or, via email, send a message with subject or body 'help' to visad-request@xxxxxxxxxxxxxxxx You can reach the person managing the list at visad-owner@xxxxxxxxxxxxxxxx When replying, please edit your Subject line so it is more specific than "Re: Contents of visad digest..." Today's Topics: 1. Re: Error reading h5 file using NetcdfFile class (Devanshi Prajapati) ---------------------------------------------------------------------- Message: 1 Date: Thu, 27 Mar 2014 01:10:00 +0530 From: Devanshi Prajapati<prajapati.devanshi@xxxxxxxxx> To: "visad@xxxxxxxxxxxxxxxx"<visad@xxxxxxxxxxxxxxxx> Subject: Re: [visad] Error reading h5 file using NetcdfFile class Message-ID: <CAH3DJ6L4KO84O_Rb5AkuMYHFhjnJ0gOs0Zwrq-pOpRYFatqunw@xxxxxxxxxxxxxx> Content-Type: text/plain; charset="iso-8859-1" Hello and thank you all for reply , Ghansham Sir, Yes I am trying with Megha-Tropiques dataset. And reading the group, ScienceData, was my last attemp,as I have already tried the same with "Latitude"(var2 in coding),"Longitude" and other variables. So, passing var2 while getting Dimension,I get the same error. And all that variable names with detailed information is displayed by printing the ncFile vaiable(Line No:3 which is in comment), but when I pass it to the Variable class, or trying to getDimension gives me a null value. *And the code is,* import java.io.IOException; import ucar.ma2.Array; import ucar.nc2.Dimension; import ucar.nc2.NetcdfFile; import ucar.nc2.Variable; public class Netcdf_readh5 { String filePath; int scans=0; public Netcdf_readh5() throws IOException { filePath="F:\\img1.h5"; NetcdfFile ncFile = NetcdfFile.open(filePath); System.out.println(ncFile); Variable var2 = ncFile.findVariable("Latitude"); Dimension d=var1.getDimension(0); System.out.println(d.getFullName()); } public static void main(String args[]) throws IOException { new Netcdf_readh5(); } } /* On Wed, Mar 26, 2014 at 11:30 PM,<visad-request@xxxxxxxxxxxxxxxx> wrote:Send visad mailing list submissions to visad@xxxxxxxxxxxxxxxx To subscribe or unsubscribe via the World Wide Web, visit http://mailman.unidata.ucar.edu/mailman/listinfo/visad or, via email, send a message with subject or body 'help' to visad-request@xxxxxxxxxxxxxxxx You can reach the person managing the list at visad-owner@xxxxxxxxxxxxxxxx When replying, please edit your Subject line so it is more specific than "Re: Contents of visad digest..." Today's Topics: 1. Re: help (Ghansham Sangar) 2. Re: help (Ghansham Sangar) ---------------------------------------------------------------------- Message: 1 Date: Wed, 26 Mar 2014 09:14:39 +0530 From: Ghansham Sangar<ghansham@xxxxxxxxxxxxxxx> To: visad@xxxxxxxxxxxxxxxx Subject: Re: [visad] help Message-ID:<53324D27.2010809@xxxxxxxxxxxxxxx> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Hi all.... Well McV and IDV have lots of code demonstrating that. IDV goes one step further to use ucar.n2.dataset.grid.GridDataset which uses NetcdfFile class to create grids which it further connects with visad using ucar.visad.data.GeoGridFlatField. That is pretty complicated in the sense, you know how to extend the ucar.nc2.dataset.CoordSysBuilder to insert your dataset file in that. In McV, it is plain NetcdfFile class being used almost in the new development may be related to S-NPP datasources or even the Hydra stuff. The new incarnation of Hydra (Hydra 2), uses McV code based for creating Multispectral datasources for calipso, cloudsat, modis, etc. Coming back to what Devanshi is concerned about. Actually as far as I know she is trying with Meghatropiques dataset. It is a very special satellite as it provides all the acquisitions in tropical region specifically dedicated to study the water cycle of tropical region. It is collaboration between ISRO and CNES. I would suggest Devanshi, you should just first try to see how you are reading variables. The code snippet that you sent, in that you are reading the "Science Data" as a variable but it is group. You should first try the following method: List<Variable> var_list = ncFile.getVariables(); It gives the list of all the variables in the hdf-5 file. Then you can pick the variable of interest from that list and apply float samples[] = variable.read(float.class); //assuming data type is float I hope it helps. Ghansham On 03/25/2014 11:30 PM, visad-request@xxxxxxxxxxxxxxxx wrote:Send visad mailing list submissions to visad@xxxxxxxxxxxxxxxx To subscribe or unsubscribe via the World Wide Web, visit http://mailman.unidata.ucar.edu/mailman/listinfo/visad or, via email, send a message with subject or body 'help' to visad-request@xxxxxxxxxxxxxxxx You can reach the person managing the list at visad-owner@xxxxxxxxxxxxxxxx When replying, please edit your Subject line so it is more specific than "Re: Contents of visad digest..." Today's Topics: 1. Re: help (Tom Whittaker) 2. Re: help (Curtis Rueden) 3. Re: help (Tom Whittaker) ---------------------------------------------------------------------- Message: 1 Date: Tue, 25 Mar 2014 09:12:12 -0500 From: Tom Whittaker<whittaker@xxxxxxxx> To: Devanshi Prajapati<prajapati.devanshi@xxxxxxxxx> Cc: "visad@xxxxxxxxxxxxxxxx"<visad@xxxxxxxxxxxxxxxx> Subject: Re: [visad] help Message-ID: <CAA6nkJBHXNWD=YWJ2+TWbG865GQwVXQmC4+xTEZuj2X2YSDJrg@xxxxxxxxxxxxxx>Content-Type: text/plain; CHARSET=US-ASCII I believe the main issue here is that the code in the VisAD library for HDF files has not been maintained by the original authors. This also is true of the netCDF adapter ("Plain"). Unfortunately, this means that for files that use newer features in these formats, the code no longer works. I do not have any solutions, other than as Ghansham suggests, using the "official" releases of the respective libraries and then building your own VisAD Data objects... tom On Fri, Mar 21, 2014 at 3:14 AM, Devanshi Prajapati <prajapati.devanshi@xxxxxxxxx> wrote:Hi.......This is my program, package myapp; import java.rmi.RemoteException; import visad.DataImpl; import visad.VisADException; import visad.data.hdf5.HDF5Form; import ncsa.hdf.hdf5lib.*; public final class hfAdapter2 { String filePath; public hfAdapter2() throws VisADException, RemoteException { filePath="F:\\Devanshi\\Input\\xyz.h5"; System.load("F:\\Devanshi\\Projects\\MyApp\\Lib\\jhdf.dll"); System.load("F:\\Devanshi\\Projects\\MyApp\\Lib\\jhdf5.dll"); HDF5Form h=new HDF5Form(); DataImpl ncData=h.open(filePath); } public static void main(String[] args) throws RemoteException, VisADException, IOException { new hfAdapter2(); } } And the Error I got is, run: Exception in thread "main" java.lang.UnsatisfiedLinkError: ncsa.hdf.hdf5lib.H5.H5Fopen(Ljava/lang/String;II)I at ncsa.hdf.hdf5lib.H5.H5Fopen(Native Method) at visad.data.hdf5.hdf5objects.HDF5File.<init>(HDF5File.java:85) at visad.data.hdf5.HDF5FileAdapted.<init>(HDF5FileAdapted.java:70) at visad.data.hdf5.HDF5Form.open(HDF5Form.java:102) at myapp.hfAdapter2.<init>(hfAdapter2.java:46) at myapp.hfAdapter2.main(hfAdapter2.java:96) Java Result: 1 BUILD SUCCESSFUL (total time: 0 seconds) -- Devanshi U. Prajapati _______________________________________________ visad mailing list visad@xxxxxxxxxxxxxxxx For list information, to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/------------------------------ Message: 2 Date: Wed, 26 Mar 2014 10:41:41 +0530 From: Ghansham Sangar<ghansham@xxxxxxxxxxxxxxx> To: visad@xxxxxxxxxxxxxxxx Subject: Re: [visad] help Message-ID:<5332618D.1010408@xxxxxxxxxxxxxxx> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Some sample snippet to read kalpana-1 hdf5 dataset using NCSA hdf5 library: public Test(String filename) throws HDF5Exception, Exception { H5File h5File = new H5File(filename, FileFormat.READ); int id = h5File.open(); H5Group rootGroup = (H5Group) ((DefaultMutableTreeNode) h5File.getRootNode()).getUserObject(); List<HObject> member_list = rootGroup.getMemberList(); H5Group vhrr_group = null; for (int i = 0; i< member_list.size(); i++) { HObject member = member_list.get(i); if (member.getName().equals("VHRR")) { vhrr_group = (H5Group) member; break; } } List<HObject> vhrr_members = vhrr_group.getMemberList(); H5Group image_data_group = null; for (int i = 0; i< vhrr_members.size(); i++) { HObject vhrr_member = vhrr_members.get(i); if (vhrr_member.getName().equals("Image Data")) { image_data_group = (H5Group) vhrr_member; break; } } List<HObject> image_data_members = image_data_group.getMemberList(); H5ScalarDS tir_ds = null; for (int i = 0; i< image_data_members.size(); i++) { HObject image_data_member = image_data_members.get(i); if (image_data_member.getName().equals("VHRR_TIR")) { tir_ds = (H5ScalarDS) image_data_member; break; } } short[] tir_data =(short[]) tir_ds.read(); long dims[] = tir_ds.getDims(); int scans = (int) dims[0]; int pixels = (int) dims[1]; h5File.close(); } Now you have got the samples and dimensions of dataset, now you can create a visad data object using that. You can check any of the examples bundled with visad library. I think you can start from here... As far as library settings are concerned. You should have all java-hdf jars in your project. and dll(for windows) and .so (for linux) in LD_LIBRARY_PATH. I hope it helps One more point, being a JNI library this should be relatively performance wise faster as compared to netcdf-java which is pure java library. Ghansham On 03/25/2014 11:30 PM, visad-request@xxxxxxxxxxxxxxxx wrote:Send visad mailing list submissions to visad@xxxxxxxxxxxxxxxx To subscribe or unsubscribe via the World Wide Web, visit http://mailman.unidata.ucar.edu/mailman/listinfo/visad or, via email, send a message with subject or body 'help' to visad-request@xxxxxxxxxxxxxxxx You can reach the person managing the list at visad-owner@xxxxxxxxxxxxxxxx When replying, please edit your Subject line so it is more specific than "Re: Contents of visad digest..." Today's Topics: 1. Re: help (Tom Whittaker) 2. Re: help (Curtis Rueden) 3. Re: help (Tom Whittaker) ---------------------------------------------------------------------- Message: 1 Date: Tue, 25 Mar 2014 09:12:12 -0500 From: Tom Whittaker<whittaker@xxxxxxxx> To: Devanshi Prajapati<prajapati.devanshi@xxxxxxxxx> Cc: "visad@xxxxxxxxxxxxxxxx"<visad@xxxxxxxxxxxxxxxx> Subject: Re: [visad] help Message-ID: <CAA6nkJBHXNWD=YWJ2+TWbG865GQwVXQmC4+xTEZuj2X2YSDJrg@xxxxxxxxxxxxxx>Content-Type: text/plain; CHARSET=US-ASCII I believe the main issue here is that the code in the VisAD library for HDF files has not been maintained by the original authors. This also is true of the netCDF adapter ("Plain"). Unfortunately, this means that for files that use newer features in these formats, the code no longer works. I do not have any solutions, other than as Ghansham suggests, using the "official" releases of the respective libraries and then building your own VisAD Data objects... tom On Fri, Mar 21, 2014 at 3:14 AM, Devanshi Prajapati <prajapati.devanshi@xxxxxxxxx> wrote:Hi.......This is my program, package myapp; import java.rmi.RemoteException; import visad.DataImpl; import visad.VisADException; import visad.data.hdf5.HDF5Form; import ncsa.hdf.hdf5lib.*; public final class hfAdapter2 { String filePath; public hfAdapter2() throws VisADException, RemoteException { filePath="F:\\Devanshi\\Input\\xyz.h5"; System.load("F:\\Devanshi\\Projects\\MyApp\\Lib\\jhdf.dll"); System.load("F:\\Devanshi\\Projects\\MyApp\\Lib\\jhdf5.dll"); HDF5Form h=new HDF5Form(); DataImpl ncData=h.open(filePath); } public static void main(String[] args) throws RemoteException, VisADException, IOException { new hfAdapter2(); } } And the Error I got is, run: Exception in thread "main" java.lang.UnsatisfiedLinkError: ncsa.hdf.hdf5lib.H5.H5Fopen(Ljava/lang/String;II)I at ncsa.hdf.hdf5lib.H5.H5Fopen(Native Method) at visad.data.hdf5.hdf5objects.HDF5File.<init>(HDF5File.java:85) at visad.data.hdf5.HDF5FileAdapted.<init>(HDF5FileAdapted.java:70) at visad.data.hdf5.HDF5Form.open(HDF5Form.java:102) at myapp.hfAdapter2.<init>(hfAdapter2.java:46) at myapp.hfAdapter2.main(hfAdapter2.java:96) Java Result: 1 BUILD SUCCESSFUL (total time: 0 seconds) -- Devanshi U. Prajapati _______________________________________________ visad mailing list visad@xxxxxxxxxxxxxxxx For list information, to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/_______________________________________________ visad mailing list visad@xxxxxxxxxxxxxxxx For list information, to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/ End of visad Digest, Vol 50, Issue 8 ************************************
visad
archives: