adiwg / mdJson-schemas

JSON schemas, examples, and templates for ADIwg metadata standards
http://www.adiwg.org/projects/
GNU Lesser General Public License v3.0
18 stars 15 forks source link

geodetic new object #159

Closed stansmith907 closed 6 years ago

stansmith907 commented 7 years ago

Schema rules for geodetic: "parameters for the shape of the earth."

Rules:

Definitions:

Rules:

mdJson:

{
   "spatialReferenceSystem": [
      {
         "referenceSystemType": "MD_ReferenceSystemTypeCode",
         "referenceSystemIdentifier": {},
         "referenceSystemParameterSet": {
            "projection": {},
            "geodetic": {
               "datumIdentifier": {},
               "datumName": "",
               "ellipsoidIdentifier": {},
               "ellipsoidName": "",
               "semiMajorAxis": 9.9,
               "axisUnits": "",
               "denominatorOfFlatteningRatio": 9.9
            },
            "verticalDatum": {}
         }
      }
   ]
}

FGDC mapping:

<metadata>
  <spref>
    <horizsys>
      <geodetic>
        <horizdn>World Geodetic System of 1984</horizdn>
        <ellips>World Geodetic System of 1984</ellips>
        <semiaxis>6378137.0</semiaxis>
        <denflat>298.257223563</denflat>
      </geodetic>
    </horizsys>
  </spref>
</metadata>

ISO 19115-2 mapping: The ellipsoid elements map to MD_EllipsoidParameters in ISO 19115-2 which is not yet implemented. The ISO MD_ReferenceSystem classes were not added to the ISO XSD so I have no means of verifying my example is correct. Further, adding these classes to an ISO record will cause validation against the XSD to fail.

    <gmd:referenceSystemInfo>
        <gmd:MD_CRS>
            <gmd:projection>
                <gmd:RS_Identifier>
                    <gmd:code>
                        <gco:CharacterString></gco:CharacterString>
                    </gmd:code>
                </gmd:RS_Identifier>
            </gmd:projection>
            <gmd:ellipsoid>
                <gmd:RS_Identifier>
                    <gmd:code>
                        <gco:CharacterString></gco:CharacterString>
                    </gmd:code>
                </gmd:RS_Identifier>
            </gmd:ellipsoid>
            <gmd:datum>
                <gmd:RS_Identifier>
                    <gmd:code>
                        <gco:CharacterString></gco:CharacterString>
                    </gmd:code>
                </gmd:RS_Identifier>
            </gmd:datum>
            <gmd:ellipsoidParameters>
                <gmd:MD_EllipsoidParameters>
                    <gmd:semiMajorAxis>
                        <gco:Real>9.9</gco:Real>
                    </gmd:semiMajorAxis>
                    <gmd:axisUnits>meters</gmd:axisUnits>
                    <gmd:denominatorOfFlatteningRatio>
                        <gco:Real>9.9</gco:Real>
                    </gmd:denominatorOfFlatteningRatio>
                </gmd:MD_EllipsoidParameters>
            </ellipsoidParameters>
        </gmd:MD_CRS>
    </gmd:referenceSystemInfo>

ISO 19115-3 mapping: Does not map to ISO 19115-1/3. This information was removed to ISO 19111 ( I do not have documentation at this time ).

jlblcc commented 6 years ago

So, should we require ellipsoidIdentifier or all: semiMajorAxis, axisUnits, denominatorOfFlatteningRatio?

Where does ellipsoidName map to? How does it differ from ellipsoidIdentifier?

stansmith907 commented 6 years ago

So, should we require ellipsoidIdentifier or all: semiMajorAxis, axisUnits, denominatorOfFlatteningRatio?

I think it depends on if we want to write an FGDC or ISO record. FGDC requires ellipsoidName, semiMajorAxis, and demoninatorOfFlatteningRatio; ISO needs only an ellipsoidIdentifier, but will require semiMajorAxis, axisUnits, and demoninatorOfFlatteningRatio if ellipsoidIdentifier is not available.

This is part of the miss-match between FGDC and ISO that we try to accommodate. So, maybe require ellipsoidIdentifier OR (ellipsoidName, semiMajorAxis, axisUnits, and demoninatorOfFlatteningRatio).

Where does ellipsoidName map to? How does it differ from ellipsoidIdentifier?

In the internal object it maps to geodetic.ellipsoidName. Maps to Ellipsoid_Name in FGDC and is not used in ISO, it would be part of identifier if one was specified.

stansmith907 commented 6 years ago

Dropped datumName and ellipsoidName.

stansmith907 commented 6 years ago

So the rules become: