Re: [netcdf-java] How to modify variable in existing netcdf4 file?

Awesome, thanks!

ons 7 apr. 2021 kl. 21:37 skrev Hailey Johnson <hajohns@xxxxxxxx>:

> Hi Andreas:
>
> That's definitely a bug! Apparently we do not set the "location" when
> modifying existing files. There will be a fix in shortly, likely this
> afternoon.
>
> Thank you for bringing this up!
> Hailey
>
> On Wed, Apr 7, 2021 at 1:28 PM Andreas Imner <andreas.imner@xxxxxxxxx>
> wrote:
>
>> Ok, but the documentation says different? The C-library is needed like
>> you say (and I have it installed) and used by Java-library via JNI?
>>
>>
>> https://docs.unidata.ucar.edu/netcdf-java/current/userguide/writing_netcdf.html
>>
>> https://docs.unidata.ucar.edu/netcdf-java/current/userguide/netcdf4_c_library.html
>>
>> And I can create new files by using
>> NetcdfFormatWriter.openExisting("/temp/input.nc").setFormat(
>> NetcdfFileFormat.NETCDF4); // note that I dont call "setNewFile(false)"
>> (This will create a file called "input.nc" but much smaller and
>> containing variables filled with "garbage" data.. but the file is still
>> written and readable)
>>
>>
>> Den ons 7 apr. 2021 kl 19:50 skrev John Caron <jcaron1129@xxxxxxxxx>:
>>
>>> Hi Andreas:
>>>
>>> Netcdf-Java does not support writing or modifying netcdf-4 files. You
>>> need to use the netcdf-4 C library directly. Sorry.
>>>
>>> John
>>>
>>> On Wed, Apr 7, 2021 at 8:49 AM Andreas Imner <andreas.imner@xxxxxxxxx>
>>> wrote:
>>>
>>>> (... continuing since I clicked "Send" to soon)
>>>>
>>>> The NPE occurs because the 'ncfile.getLocation()' returns null
>>>>
>>>> My question is, is this supposed to work and am I doing something
>>>> wrong?
>>>> Or maybe this is not the way you are supposed to work with NetCDF
>>>> -files that you want to modify the contents of?
>>>>
>>>> Den ons 7 apr. 2021 kl 16:33 skrev Andreas Imner <
>>>> andreas.imner@xxxxxxxxx>:
>>>>
>>>>> Hi!
>>>>> A am trying to use the Java NetCDF library to modify the data of a
>>>>> variable in an existing NetCDF4 file.
>>>>>
>>>>> I use the 5.4.1 version of the Java library
>>>>> I have version 4.7.4_2 of the netcdf C-library installed and it works
>>>>> properly.
>>>>>
>>>>> The problem I get is that when opening the existing file for writing,
>>>>> a NPE is thrown.
>>>>>
>>>>> My code looks something like this...
>>>>>
>>>>> NetcdfFormatWriter.Builder builder = 
>>>>> NetcdfFormatWriter.openExisting("/temp/input.nc").setFormat(NetcdfFileFormat.NETCDF4).setNewFile(false);
>>>>> NetcdfFormatWriter writer = builder.build();
>>>>>
>>>>> But when .build() is called an exception is thrown
>>>>>
>>>>> Exception in thread "main" java.lang.NullPointerException
>>>>>   at ucar.nc2.NetcdfFiles.canonicalizeUriString(NetcdfFiles.java:359)
>>>>>   at ucar.nc2.jni.netcdf.Nc4Iosp._open(Nc4Iosp.java:253)
>>>>>   at ucar.nc2.jni.netcdf.Nc4Iosp.openForWriting(Nc4Iosp.java:239)
>>>>>   at ucar.nc2.write.NetcdfFormatWriter.<init>(NetcdfFormatWriter.java:329)
>>>>>   at ucar.nc2.write.NetcdfFormatWriter.<init>(NetcdfFormatWriter.java:49)
>>>>>   at 
>>>>> ucar.nc2.write.NetcdfFormatWriter$Builder.build(NetcdfFormatWriter.java:261)
>>>>>
>>>>> Looking at the code in the class Nc4Iosp.java
>>>>>
>>>>> private void _open(RandomAccessFile raf, NetcdfFile ncfile, boolean 
>>>>> readOnly) throws IOException {
>>>>>     ...
>>>>> String location = NetcdfFiles.canonicalizeUriString(ncfile.getLocation());
>>>>>
>>>>>
>>>>> _______________________________________________
>>>> NOTE: All exchanges posted to Unidata maintained email lists are
>>>> recorded in the Unidata inquiry tracking system and made publicly
>>>> available through the web.  Users who post to any of the lists we
>>>> maintain are reminded to remove any personal information that they
>>>> do not want to be made public.
>>>>
>>>>
>>>> netcdf-java mailing list
>>>> netcdf-java@xxxxxxxxxxxxxxxx
>>>> For list information or to unsubscribe, visit:
>>>> https://www.unidata.ucar.edu/mailing_lists/
>>>>
>>> _______________________________________________
>> NOTE: All exchanges posted to Unidata maintained email lists are
>> recorded in the Unidata inquiry tracking system and made publicly
>> available through the web.  Users who post to any of the lists we
>> maintain are reminded to remove any personal information that they
>> do not want to be made public.
>>
>>
>> netcdf-java mailing list
>> netcdf-java@xxxxxxxxxxxxxxxx
>> For list information or to unsubscribe, visit:
>> https://www.unidata.ucar.edu/mailing_lists/
>>
>
  • 2021 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: