[GeoNetwork-users] Thredds harvesting ISO metadata (GN2.10)

Many thanks to Craig Jones who has been a wealth of knowledge on getting our Thredds harvesting issues resolved. I've listed the issues and resolution for others who might later be going through the same thing.

1) The Thredds harvest stylesheet (thredds-attributes.xsl) was not pulling in much of the metadata we needed and was doing things like putting the filename in for the title and a lot of other things that just weren't working for us.
        Resolution: used the netCDF stylesheet which was almost perfect as is.

2) The ISO19139 template has 'oceans' hardcoded into the TopicCategory and GeoNetwork's harvesting admin module apparently has a bug where it does not recognize the one entered via the dropdown option.
        Resolution: updated the template to replace 'oceans' with a TopicCategory of my choosing (note: must be done within GeoNetwork by editing the template, not editing the xml).
        This is workable for now since most of my thredds harvests will have the same category. I am going to continue to test some things and see if I can make it accept the category the incoming metadata record has if present.

3) The netCDF stylesheet was not creating a unique UUID so only one dataset in a catalog was being harvested
        Resolution: Craig helped me with a few code options which created a 'real' unique UUID (see below for his suggestions -- all three options forced GN to delete the old record and create a unique UUID so there may be some other bug there as well, but it works

                The problem code is:
                <xsl:variable name="authority" select="nc:attribute[@name='authority']/@value"/>
                <xsl:variable name="id" select="nc:attribute[@name='id']/@value"/>
                <xsl:variable name="uuid"><xsl:if test="$authority and $id"><xsl:value-of select="concat($authority,':')"/></xsl:if><xsl:value-of select="$id"/></xsl:variable>

a) replace the above code with .... <xsl:variable name="uuid" select="/root/@uuid"/>
b) replace the above code with .... <xsl:variable name="uuid" select=""/>
c) Or you can let geonetwork assign a random uuid by changing: <record uuid="{$uuid}"> to: <record>

4) Now I am dealing with the Thredds-to-ISO19119.xsl load for Services. This does not seem to be behaving:
    One issue seems to be that it is not recognizing the above UUID that is generated and is creating a text-based UUID which going back to the issue of not being unique so I am only getting one service record (e.g. wms) for the catalog -- Craig states that there is also a bug in the harvester java code that uses the netCDF java library UUID regardless of what GN sets. Has anyone fixed that with a patch I could run?
    Another is that it really is minimal metadata, much like the thredds harvest xsl, so looks like I need to add a bunch of variables to the stylesheet (anyone created a good Services stylesheet I could use?).
    (I am going to post this as a separate thread to see if I can get some responses so apologies in advance for cross-posting.)

Kathy
_____________________________________
Kathy Koch
Data Curator
Contractor (LimnoTech / GLOS)
501 Avis Drive, Ann Arbor, MI 48108
Office: 734-332-1200 email:kkoch@anonymised.com<mailto:kkoch@anonymised.com>
LimnoTech www.limno.com<https://mail.limno.com/owa/UrlBlockedError.aspx&gt;
<../../../../tdekker/AppData/Local/Microsoft/Windows/Temporary%20Internet%20Files/Content.Outlook/8B0OUOWO/www.limno.com>