NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

[netcdf-java] NetCDF metadata to ISO 19115: code donation to UCAR?

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

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