Hi Martin:
Sorry, this got lost in the cracks. We would be interested in
incorporating this. The main issue is handling the GeoAPI dependencies,
which we are ready to try to solve. Is this ready to try incorporating?
We would do it for 4.3.
John
On 10/6/2011 9:49 AM, Martin Desruisseaux wrote:
Hello UCAR maintainers
This is a proposal related to the "THREDDSMetadata" thread. The NcISO
software translates NetCDF metadata to ISO 19115-2 using XSL files.
I'm in the process of translating the XSL logic to pure Java code for
programmatic convenience, performance, /etc./ However because this
work depends very strongly on NetCDF/THREDDS conventions, I feel that
it would be better to have it as a module of the UCAR NetCDF-Java
library. Would the UCAR maintainers be interrested to take the code
once I finished it? I would be happy to give it.
Notes:
* It can be a separated module; it doesn't need to live in the
NetCDF core module.
* The public API depends on NetCDF core and GeoAPI 3.0.0 interfaces
o GeoAPI 3.0.0 is now an OGC standard (since April)
o GeoAPI is deployed on Maven Central
o The GeoAPI governance follow OGC rules (voting process, etc.).
* A GeoAPI implementation is required, but you have the choice:
o Simple implementation based on HashMap (public domain)
o Or the Geotoolkit.org implementation (which I'm using)
+ You need only the metadata module; you can ignore
referencing.
+ Also deployed on Maven Central.
The Java code looks like below:
final DefaultMetadata metadata = new DefaultMetadata();
metadata.setFileIdentifier(getThreddsOrGlobalAttribute("id"));
metadata.getHierarchyLevels().add(ScopeCode.DATASET);
if (services != null) {
metadata.getHierarchyLevels().add(ScopeCode.SERVICE);
}
/*
* Add the ResponsibleParty which is declared in global attributes.
*/
ResponsibleParty contact = createResponsibleParty(
getAttribute("creator_name"),
getAttribute("institution"),
getAttribute("creator_email"),
createOnlineResource(getAttribute("creator_url"), null, null),
Role.POINT_OF_CONTACT);
if (contact != null) {
metadata.getContacts().add(contact);
}
// etc...
So the Java code is pretty much straight-forward, the "real" work is
to apply NetCDF convention, which is why I feel this code would be
better served if it lived as a module of the NetCDF library.
Any interest?
Martin
_______________________________________________
netcdf-java mailing list
netcdf-java@xxxxxxxxxxxxxxxx
For list information or to unsubscribe, visit:
http://www.unidata.ucar.edu/mailing_lists/