Okay, then
1) variable.read(section or range) gives you an Array with a range's data.
2) array.next() (or a variant) returns the next value from the array, using
the local iterator and array.hasNext() tells you if there is another value
available from the iterator.
Every Array object has a built in "local iterator". See the Array
documentation for all the methods that use it.
On Thu, Jan 26, 2017 at 8:17 AM, Hanns Holger Rutz <rutz@xxxxxx> wrote:
> hi bob,
>
> the problem with this is that I need an array first; that implies (if I
> understand correctly), that I have the entire file read into one array
> first (which is not feasible in my case); what I'm doing now, is for a
> given linear range (e.g. 1000th to 2000th element in the "flat data") I
> calculate small number of appropriate sections which will then when
> iterated one after another reproduce that exact linear range.
>
> best, .h.h.
>
>
> On 26/01/17 17:14, Bob Simons - NOAA Federal wrote:
> > Perhaps you could use one of the built-in iterators, such as
> > Array.getRangeIterator
> > <http://www.unidata.ucar.edu/software/thredds/current/
> netcdf-java/javadoc/ucar/ma2/Array.html#getRangeIterator-java.util.List-
> >(java.util.List<Range
> > <http://www.unidata.ucar.edu/software/thredds/current/
> netcdf-java/javadoc/ucar/ma2/Range.html>> ranges)
> >
> > On Thu, Jan 26, 2017 at 7:58 AM, Hanns Holger Rutz <rutz@xxxxxx
> > <mailto:rutz@xxxxxx>> wrote:
> >
> > hi there,
> >
> > for the record, i managed to implement an algorithm that solves
> > this (
> > https://stackoverflow.com/questions/41850946/linearly-
> reading-a-multi-dimensional-array-obeying-dimensional-sub-
> sectioning#41870662
> > <https://stackoverflow.com/questions/41850946/linearly-
> reading-a-multi-dimensional-array-obeying-dimensional-sub-
> sectioning#41870662>
> > shows how to generate the sub-ranges within the overall section to
> > be read )
> >
> > best, .h.h.
> >
> >
> > On 25/01/17 12:20, Hanns Holger Rutz wrote:
> > > hi there,
> > >
> > > I have a scenario where I need to read the entire contents of a
> > > multi-dimensional section'ed variable piecewise linearly.
> > >
> > > for example, say the variable has shape [a][b][c] and I have
> > section'ed
> > > it as [s1][s2][s3]. say data type is double. now i need to read the
> > > stream of elements, the total size of which is s1.size * s2.size *
> > > s3.size in chunks, for example of chunk size x.
> > >
> > > the API for variable doesn't allow me to specify "flat" linear
> > indices,
> > > so I need to calculate intermediate sub-sections, I guess. this
> looks
> > > very complicated because the chunk size x might not be a simple
> > multiple
> > > of s3.size, s2.size*s3.size, etc.
> > >
> > > So I can only think of two approaches: read "too" much data and
> then
> > > throw away some. Read multiple times; perhaps this problem can be
> > > formulated in maximally three read calls?
> > >
> > > Has anyone solved this somehow? Or is there a trick in the API
> that I
> > > haven't seen, to get a linear read command that preserves the
> offsets
> > > and strides of sections?
> > >
> > > thanks, .h.h.
> > >
> > > _______________________________________________
> > > 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 <mailto:netcdf-java@xxxxxxxxxxxxxxxx>
> > > For list information or to unsubscribe, visit:
> > http://www.unidata.ucar.edu/mailing_lists/
> > <http://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 <mailto:netcdf-java@xxxxxxxxxxxxxxxx>
> > For list information or to unsubscribe, visit:
> > http://www.unidata.ucar.edu/mailing_lists/
> > <http://www.unidata.ucar.edu/mailing_lists/>
> >
> >
> >
> >
> > --
> > Sincerely,
> >
> > Bob Simons
> > IT Specialist
> > Environmental Research Division
> > NOAA Southwest Fisheries Science Center
> > 99 Pacific St., Suite 255A (New!)
> > Monterey, CA 93940 (New!)
> > Phone: (831)333-9878 (New!)
> > Fax: (831)648-8440
> > Email: bob.simons@xxxxxxxx <mailto:bob.simons@xxxxxxxx>
> >
> > The contents of this message are mine personally and
> > do not necessarily reflect any position of the
> > Government or the National Oceanic and Atmospheric Administration.
> > <>< <>< <>< <>< <>< <>< <>< <>< <><
> >
> >
> >
> > _______________________________________________
> > 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:
> http://www.unidata.ucar.edu/mailing_lists/
> >
>
>
>
--
Sincerely,
Bob Simons
IT Specialist
Environmental Research Division
NOAA Southwest Fisheries Science Center
99 Pacific St., Suite 255A (New!)
Monterey, CA 93940 (New!)
Phone: (831)333-9878 (New!)
Fax: (831)648-8440
Email: bob.simons@xxxxxxxx
The contents of this message are mine personally and
do not necessarily reflect any position of the
Government or the National Oceanic and Atmospheric Administration.
<>< <>< <>< <>< <>< <>< <>< <>< <><