Re: [visad] help

Hi devanshi

You are pretty close. 
Can you just send me the output of
the statement:
System.out.println(ncFile);
ghansham




On Thu, Mar 27, 2014, visad-request@xxxxxxxxxxxxxxxx said:

> 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
>> ************************************
>>
> 
> 
> 
> -- 
> Devanshi U. Prajapati
> LJIET(MCA)
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: 
> <http://mailman.unidata.ucar.edu/mailing_lists/archives/visad/attachments/20140327/d5b99098/attachment.html>
> 
> ------------------------------
> 
> _______________________________________________
> 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 9
> ************************************
> 

--