From: Martin D. <mar...@no...> - 2005-06-05 05:27:07
|
Bryce L Nordgren a =E9crit : > However, I have more. Geotools has implemented more MathTransforms tha= n > OGC has specified parameters for. In fact, OGC has specified more > classification types than they have supplied parameter names for. Wher= e do > the standards for "Mercator_1SP" parameters names come from, for instan= ce? I assumes that you are refering to figure 2 and sections 10.1 to 10.6 in=20 OGC 01-009 document. --- Note for peoples wondering what is OGC 01-009 document ------------ Many classification and parameter names in Geotools come from the legacy=20 OGC 01-009 document. OGC 01-009 was an OGC specification before OGC=20 abandonned their own CRS framework and adopted ISO 19111 instead. So OGC=20 01-009 is a legacy specification, not to be uses anymore for new CRS=20 developments. However, ISO 19111 do not overlaps fully OGC 01-009. There=20 is many areas covered by OGC 01-009 and not covered at all by ISO 19111.=20 So our approach was: - Use ISO 19111 fully. - Only for areas found in OGC 01-009 with absolutly no equivalent in ISO 19111, use the OGC 01-009 stuff. So we used OGC 01-009 for filling holes when ISO 19111 said nothing on a particular topic. One can download OGC 01-009 document there: http://www.opengis.org/docs/01-009.pdf Looking at it, one can see that a lot of GeoAPI and Geotools stuff not=20 in ISO 19111 come from this document, including: - Well Know Text (WKT) format - MathTransform - Factories - Many classification names (figure 2) - Many parameter names (sections 10.1 to 10.6) ---- end of the note ----------------------------------------------- In addition to OGC 01-009, we used an other source of very valuable=20 references for classification and parameter names: the GeoTIFF=20 projection list: http://www.remotesensing.org/geotiff/proj_list/ This list provides both GeoTIFF and OGC classification and parameter=20 names. This web site was actually one of our main sources for=20 classification and parameter names in Geotools. The "Mercator (1SP)"=20 projection in this list provides the "latitude_of_origin" and similar=20 parameters. > And if someone wants to implement a "Sinusoidal" projection, or anythin= g > else off of http://mathworld.wolfram.com, how do they come up > with...well...even a classification name, much less a parameter name? If we can't find a standard name, we use ours own. This is the case for=20 example of the "Logarithmic" transform. However, each name is always associated to an authority (or a "scope" in=20 the context of scoped names). Thats said, the full name of "semi_major"=20 is actually "OGC:semi_major", where "semi_major" is the LocalName (from=20 org.opengis.util package) and "OGC" is the scope (LocalName.getScope()).=20 The mechanism is similar to fully qualified names in Java packages. So, it should always be possible to know if a particular name is an=20 OGC's name or a GeoTIFF one: just look at the scope. For our own=20 transformation, we use "Geotools:" scope. If we find an official name=20 from OGC later, we will add that "OGC:" scoped name. This lead me to an other point: each classification/parameter can have=20 an arbitrary number of names. Actually they do have. For example (using=20 again the Mercator_1SP classification), try the following from the=20 command line: java org.geotools.referencing.operation.DefaultMathTransformFactory=20 Mercator_1SP Geotools will tells you that it know all of the above names for this=20 transformation: OGC:Mercator_1SP EPSG:Mercator (1SP) EPSG:9804 GeoTIFF:CT_Mercator Geotools:Projection Mercator cylindrique (where the Geotools name is localized, so its appears in French on my=20 machine). You can use any of those names. Geotools will recognize "CT_Mercator" as=20 well as "Mercator_1SP". If you want to be sure that you are looking for a GeoTIFF name and not=20 an OGC name, use the fully qualified name. For example Geotools will=20 accepts this name: GeoTIFF:CT_Mercator but will not recognize this name: OGC:CT_Mercator Of course, it will recognize this name however: OGC:Mercator_1SP You can use DefaultMathTransformFactory in order to experiment the names=20 from the command line. > Does Geotools implement the OGC standard literally, or does it correct = for > "presumed typos" in the OGC standard (e.g., Sect 10.1 "Semi_major" is > capitalized here and only here). If Geotools were to implement a > Geocentric to ellipsoidal transform, would it capitalize or not? We try to correct presumed typos. If a typo is widely used, we can=20 provided both names (the typo and the correct name) as alias. > Also: MathTransforms don't maintain authority information. They aren't > created with authorityfactories. The onus for creating a translation > between (for example) GeoTIFF and the OGC authorities lies on the plugi= n > writer (me). So I'm essentially trying to feel out the waters to see i= f > the same physical parameter is always going map to the same name by all > projection implementations. If so, how strict are those guarantees? O= r > should I just expect to need to be alert for nonconformists? :) This is true that there is no authority factory for MathTransforms. I=20 don't know yet if we should provide one or not. But anyway, in current=20 Geotools implementation, you shouldn't need to translate parameters from=20 GeoTIFF names to OGC names. Just use the GeoTIFF names and it should=20 work. If you want to be really sure that a GeoTIFF name is not confused=20 with an OGC parameter using the same name for a different purpose, just=20 prepend "GeoTIFF:" in front of every names. Could it work? Martin. |