Re: [netcdf-java] Low level C-like API for NetCDF-Java

On Tue, Dec 23, 2008 at 10:59 PM, John Caron <caron@xxxxxxxxxxxxxxxx> wrote:
> Hi Arlindo:
>
> There is no such low level C-like API in the netcdf-Java library. However, 
> the Java API has a pretty close correspondence, but an automatic conversion 
> is not likely.

I was thinking about doing this by hand...

>
> If what you need is netcdf + opendap in C, then you can use netcdf-4. Im not 
> sure what the release status of that  is, but i know you could get a 
> preliminary version.
>
> OTOH, Im not sure exactly what you are trying to accomplish. Take existing C 
> code using netCDF C library and turn into Java? For what purpose?
>

The NestedVM project

      http://nestedvm.ibex.org/

provides means of compiling C sources into Java byte code. This is
accomplished by compiling C sources into mips machine code and then
translating this into java byte code.  In this sense, the JVM becomes
another platform to build for; no translation .c to .java is
necessary. There is only one set of sources to maintain, and a java
version of your application comes with very little development
overhead.

With relatively moderate effort, I've been able to produce a very
functional build of the latest GrADS v2 release that runs entirely
under the JVM; no JNI involved, 100% pure JVM.  This includes full
NetCDF-3, HDF-4, GRIB-1, GRIB-2 and PNG support. Except for rewriting
the low level graphics primitives to use awt/swing, no manual java
recoding was necessary. The only major feature missing in this build
is OPeNDAP support.   Of the OPeNDAP dependencies, I've been able to
build xml2, but curl has been a bit trick because some of the syscalls
needed are yet to be implemented in NestedVM (I'm getting close,
though: curl builds and runs under the JVM but does not quite work
yet.)

   As a stop-gap measure, I was considering wrapping your NetCDF-Java
classes to provide an implementation of the  few low-level nc-dap
calls that are used by grads. (Nested VM allows for you to call Java
native methods from your "C" code.)  Since other folks might have
already done this work, I was trying not to duplicate any effort. As
you indicate, there is good correspondence between the Java and C
APIs, and although tedious this seems quite doable.

  At some point I'd interested in benchmarking my NestedVM build of
NetCDF-3 against our native implementation. I've been very surprised
by the performance of NestedVM.

  Cheers!

     Arlindo












> Regards,
>
> John
>
> Arlindo da Silva wrote:
>> Hi,
>>
>>     I am in the process of using NestedVM (uses gcc to compiles C
>> sources into JAVA bytecode, see http://nestedvm.ibex.org/) to port
>> some C code to Java. I've been able to compile the latest NetCDF 3.x
>> code just fine, but I need OPeNDAP and nc-dap is a bit more
>> challenging as I need to implement a fairly functional ipc/xdr layer
>> for that. Therefore, I could save time by calling NetCDF-Java
>> implementation instead.
>>
>>    I only need to read classic NetCDF-3 files/OPeNDAP  URLs, therefore
>> the immutability of the file object in  NetCDF-Java should not be a
>> concern. Has anybody developed a wrapper (or does it exist privately
>> inside NetCDF-Java) for NetCDF-Java with a C-Like API?  Say,
>> nc_open(), nc_close, etc. I'm trying not to reinvent the wheel...
>>
>>   Thank you,
>>
>>        Arlindo
>>
>



-- 
Arlindo da Silva
dasilva@xxxxxxxxxxxx


  • 2008 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: