NOTE: The galeon
mailing list is no longer active. The list archives are made available for historical reasons.
Aaron Braeckel wrote:
As mentioned by Peter, the CRS WG is currently considering the generalized CRS concept. AFAIK the CRS group will choose one of three alternatives for how to implement the generalized CRS. It is not clear to me how this might eventually make it into ISO-land, or the real relationship between the groups. It sounded like the parametric values extension was already in ISO 19111 and my off the cuff impression isthat it's well on its way or through the process of standardization.Those two extensions would seem to cover pressure levels and multiple time coordinates, but the specifics of how to do parameterized CRSs remains. Just looking at the CF spec as a starting point, I see about 10 horizontal reference systems including things like: -Lambert Conformal Conic -Stereographic -Azimuthal equidistant -etc I just searched for Lambert on http://www.epsg-registry.org/ and I hit upon EPSG:9802, which is Lambert Conformal. This EPSG code is referenced by other specific instances (such as EPSG:3084 "Texas Centric Lambert Conformal") codes as part of their definition. I did not search for all of the 10 mentioned in CF, but I also found EPSG:9809 for oblique stereographic. This seems to indicate that there are both specific instances as well as general types in the EPSG registry. We just need to discover how to use them properly.
ok, so getting GML from the epsg-registry, i grabbed a random CRS: <ProjectedCRS xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:epsg="urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns="http://www.opengis.net/gml" gml:id="epsg-crs-3416"> <metaDataProperty> <epsg:CommonMetaData> <epsg:type>projected</epsg:type> <epsg:alias alias="ETRF89 / Austria Lambert" code="3647" codeSpace="urn:ogc:def:naming-system:EPSG::7301"/> <epsg:informationSource>Bundesamt fur Eich- und Vermessungswesen; Wien</epsg:informationSource> <epsg:revisionDate>2006-12-12</epsg:revisionDate> <epsg:show>true</epsg:show> <epsg:isDeprecated>false</epsg:isDeprecated> </epsg:CommonMetaData> </metaDataProperty> <identifier codeSpace="OGP">urn:ogc:def:crs:EPSG::3416</identifier> <name>ETRS89 / Austria Lambert</name> <remarks>Replaces MGI / Austria Lambert (CRS code 31287).</remarks> <domainOfValidity xlink:href="urn:ogc:def:area:EPSG::1037"/> <scope>Medium and small scale mapping and GIS.</scope> <conversion xlink:href="urn:ogc:def:coordinateOperation:EPSG::19947"/> <baseGeodeticCRS xlink:href="urn:ogc:def:crs:EPSG::4258"/> <cartesianCS xlink:href="urn:ogc:def:cs:EPSG::4530"/> </ProjectedCRS> it turns out the projection parameters are in the conversion href: <Conversion xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:epsg="urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns="http://www.opengis.net/gml" gml:id="epsg-op-19947"> <metaDataProperty> <epsg:CommonMetaData> <epsg:type>conversion</epsg:type> <epsg:informationSource>Bundesamt für Eich- und Vermessungswesen</epsg:informationSource> <epsg:revisionDate>2000-01-07</epsg:revisionDate> <epsg:changes> <epsg:changeID xlink:href="urn:ogc:def:change-request:EPSG::1999.940"/> </epsg:changes> <epsg:isDeprecated>false</epsg:isDeprecated> <epsg:sexagesimalValue uom="urn:ogc:def:uom:EPSG::9110"> <epsg:degrees>47</epsg:degrees> <epsg:minutes>30</epsg:minutes> <epsg:hemisphere>N</epsg:hemisphere> <epsg:propertyReference xlink:href="urn:ogc:def:parameter:EPSG::8821"/> </epsg:sexagesimalValue> <epsg:sexagesimalValue uom="urn:ogc:def:uom:EPSG::9110"> <epsg:degrees>13</epsg:degrees> <epsg:minutes>20</epsg:minutes> <epsg:hemisphere>E</epsg:hemisphere> <epsg:propertyReference xlink:href="urn:ogc:def:parameter:EPSG::8822"/> </epsg:sexagesimalValue> <epsg:sexagesimalValue uom="urn:ogc:def:uom:EPSG::9110"> <epsg:degrees>49</epsg:degrees> <epsg:hemisphere>N</epsg:hemisphere> <epsg:propertyReference xlink:href="urn:ogc:def:parameter:EPSG::8823"/> </epsg:sexagesimalValue> <epsg:sexagesimalValue uom="urn:ogc:def:uom:EPSG::9110"> <epsg:degrees>46</epsg:degrees> <epsg:hemisphere>N</epsg:hemisphere> <epsg:propertyReference xlink:href="urn:ogc:def:parameter:EPSG::8824"/> </epsg:sexagesimalValue> </epsg:CommonMetaData> </metaDataProperty> <identifier codeSpace="OGP">urn:ogc:def:coordinateOperation:EPSG::19947</identifier> <name>Austria Lambert</name> <domainOfValidity xlink:href="urn:ogc:def:area:EPSG::1037"/> <scope>Medium and small scale mapping</scope> <coordinateOperationAccuracy> <gmd:DQ_RelativeInternalPositionalAccuracy> <gmd:result> <gmd:DQ_QuantitativeResult> <gmd:valueUnit xlink:href="urn:ogc:def:uom:EPSG::9001"/> <gmd:value> <gco:Record> <gco:Decimal>0</gco:Decimal> </gco:Record> </gmd:value> </gmd:DQ_QuantitativeResult> </gmd:result> </gmd:DQ_RelativeInternalPositionalAccuracy> </coordinateOperationAccuracy> <method xlink:href="urn:ogc:def:method:EPSG::9802"/> <parameterValue> <ParameterValue> <value uom="urn:ogc:def:uom:EPSG::9102">47.5</value> <operationParameter xlink:href="urn:ogc:def:parameter:EPSG::8821"/> </ParameterValue> </parameterValue> <parameterValue> <ParameterValue> <value uom="urn:ogc:def:uom:EPSG::9102">13.3333333</value> <operationParameter xlink:href="urn:ogc:def:parameter:EPSG::8822"/> </ParameterValue> </parameterValue> <parameterValue> <ParameterValue> <value uom="urn:ogc:def:uom:EPSG::9102">49.0</value> <operationParameter xlink:href="urn:ogc:def:parameter:EPSG::8823"/> </ParameterValue> </parameterValue> <parameterValue> <ParameterValue> <value uom="urn:ogc:def:uom:EPSG::9102">46.0</value> <operationParameter xlink:href="urn:ogc:def:parameter:EPSG::8824"/> </ParameterValue> </parameterValue> <parameterValue> <ParameterValue> <value uom="urn:ogc:def:uom:EPSG::9001">400000</value> <operationParameter xlink:href="urn:ogc:def:parameter:EPSG::8826"/> </ParameterValue> </parameterValue> <parameterValue> <ParameterValue> <value uom="urn:ogc:def:uom:EPSG::9001">400000</value> <operationParameter xlink:href="urn:ogc:def:parameter:EPSG::8827"/> </ParameterValue> </parameterValue> </Conversion> one has to follow the operationParameter links to get the parameter names. im not sure what are the required elements, but if i try to make a minimal GML, taking various liberties and dereferencing things: <ProjectedCRS> <identifier codeSpace="OGP">urn:ogc:def:crs:EPSG::9802</identifier> <name>Lambert Conformal</name> <conversion> <parameterValue> <value uom="degree">47.5</value> <operationParameter name="Latitude of false origin"/> </parameterValue> <parameterValue> <value uom="degree">13.3333333</value> <operationParameter name="Longitude of false origin"/> </parameterValue> <parameterValue> <value uom="degree">49.0</value> <operationParameter name="Latitude of 1st standard parallel "/> </parameterValue> <parameterValue> <value uom="degree">46.0</value> <operationParameter name="Latitude of 2nd standard parallel "/> </parameterValue> <parameterValue> <value uom="metre">400000</value> <operationParameter name="Easting at false origin "/> </parameterValue> <parameterValue> <value uom="metre">400000</value> <operationParameter name="Northing at false origin "/> </parameterValue> </conversion> <baseGeodeticCRS xlink:href="urn:ogc:def:crs:EPSG::4258"/> <cartesianCS xlink:href="urn:ogc:def:cs:EPSG::4530"/> </ProjectedCRS> which i guess is ok. As an aside, I wonder about the "Latitude/Longitude of false origin" which are defined as: "The latitude/longitude of the point which is not the natural origin and at which grid coordinate values false easting and false northing are defined." Naively, it sounds like I am getting the lat/lon value corresponding to the arbitrary Easting/Northing false origin coordinate. How does one generate the Latitude/Longitude of the natural origin, which is what i need to create the projection function? I must be misunderstanding something. If I'm not misunderstanding, then this particular identifier: <identifier codeSpace="OGP">urn:ogc:def:crs:EPSG::3416</identifier> describes a projection, but does not include the information one would need to implement it. For that, you would need the "Latitude/Longitude of natural origin" parameters.
galeon
archives: