John Caron wrote:
Hi Nick:
Im not sure what your use case is. Are you generating the data values
yourself, or do they come out of a netcdf file?
Hi John. 3 cases (for when you're back);
1) Build NcML representations on the fly myself in a data ingest
(producer), preferably using a NetCDF/NcML API. This NcML would be
serialized to String and distributed via JMS to consumers.
2) Flexibly parse NcML in data consumers (eg databases, monitoring) for
pulling out attributes/values etc, again using an API.
3) Dumping NcML messages directly into NetCDF files that will form a
master NetCDF store.
and full values support all the way through.
At the moment my messages comprise of Java Serializable simple bean-like
classes, but this is not a good approach for cross-platform integration
(ie working with .NET producers/consumers) and they're of course not
self describing either.
BTW, I will be on vacations until next week, You might want to look at
NcMLWriter.java in the meanwhile.
Ah yes I see NcMLWriter.writeXML / NcMLWriter.writeValues now - I had
been looking at NetcdfFile itself. 2 questions;
NcML.writeXML, being the method that generates NcML as I understand,
seems to want to read it's data via a NetcdfFile however I'd be wanting
to create containers in memory. Are temporary files essential?
NCMLReader looks more promising - you seem to be able to return an
in-memory NetcdfDataset via readNcML(InputStream...). Maybe this
NetcdfDataset is the common API - will writeXML work if passing it a
NetcdfDataset?
Hopefully I'm getting across that "files" are really just one of many
consumer end-points in my scenario and not something I'm trying to focus
my data around. More important is the in-memory container classes and
the ability to conveniently convert these to/from NcML (with values
support).
Nick Bower wrote:
I want to verify the api support for variable values in NcML.
Some background - we're looking at NcML as a potential cross-platform
format to exchange realtime data via Java/.Net messaging. We already
use NetCDF extensively in our organisation where we've conventionally
collected long periods of data at a single place, but the idea is
that we want to explore a more modern distributed realtime messaging
architecture where data volume in any single message is low, but
delivery frequency and schema variability from different sources is
high. In this way NcML could be used to represent measurement
datums, say one NcML message specifying a measurement timestamp from
a remote logging station contain the measurements of several
instruments. NcML also has the benefit of 1) facilitating downstream
aggregation by message consumers directly to NetCDF, 2) GML
extension. We're using Mule ESB (Java) to integrate this btw.
My question regards the support for variable "values". Support
exists in the xsd, but appears totally lacking in both the java api
and ncdump/ncgen utilities. Both the api javadoc and utilities man
pages explicity say that any generated NcML will not include values.
Can someone please clarify what is the status of supporting variable
values in NcML, and what is the roadmap for api inclusion?
Thanks, Nick