MetaCRS

Background
This page is intended as an initial anchor for an OSGeo Project encompassing several projections, and coordinate system related technologies.

My (FrankW) hope was that we could treat a variety of coordinate system activities as one Project from an OSGeo point of view. This helps get us past the issue that some (all?) of them are rather small in terms of teams to justify the full "OSGeo project treatment".

But more importantly it would give us a forum to cooperate. Sharing things like coordinate system dictionaries, test suites and such.

Potential Participants
The MetaCRS PSC and governance protocol are currently in formation.


 * proj4js (Javascript: Rich Greenwood and Mike Adair )
 * proj.4
 * libproj4 (the projection-only library maintained by Gerald Evenden)
 * OSGSpatialReference (GDAL coordinate system translation classes)
 * CS-Map (the recently open sourced library from Norm Olsen/Autodesk)

I'm also hopeful that folks from GeoTools, and OSSIM who maintain their own projections code would participate to take advantage of the dictionaries and test suites even though their libraries wouldn't be part of the project.

Mailing list
In order to facilitate further discussion I have created a mailing list. Please join if you have an interest.

http://lists.osgeo.org/mailman/listinfo/MetaCRS

Practical Questions
Answers are not authoritative - they are one opinion on possible answers.

Are we trying to merge the source into one super-library?
No, though there may be opportunities that arise for consolidation over time.

Is my library/component going to be subject to the whim of other contributors?
I imagine we will want to use the lieutenant model of development where particular components are essentially maintained by a chief maintainer. The project steering committee would establish broad policy (such as contributor rules) and facilitation for shared components (perhaps some dictionaries) while leaving technical direction of some components to their primary maintainer (ie. Norm for CS-Map).

So will all these packages live in a single subversion respository with a single Trac instance?
This is unclear. This would reduce overhead complexity from a SAC point of view, but it might not have many other benefits. It is important to realize different components will be released on different schedules and so forth. So if they do live in one subversion instance, they would each need their own versioning urls. This could result in svn trees something like:

http://svn.osgeo.org/metacrs/proj4/trunk/ http://svn.osgeo.org/metacrs/proj4/branches/4.6.0/ http://svn.osgeo.org/metacrs/csmap/trunk/ ...

Trac (in my experience) is normally setup with the assumption that it represents one project with a unified concept of versions (for milestones, etc). To me this seems incompatible with having libraries on their own release cycles.

Non-Programming Collaboration
What opportunities are there for collaboration with projection libraries in languges that are not directly compatable with C programming language or C++ programming language libraries? (For example: GeoTools includes functional code for spatial reference systems in Java based on the ESPG database.)

Suggestions:
 * Common Spatial Reference System or Coordinate Reference System Names and Descriptions
 * Coordinate System (and CRS related object) dictionaries. Stuff like the EPSG dictionary.
 * Datum shift lists (towgs84), and datum grid shift files (NTv1, etc).
 * Transformations, calculations, and algorithms written in pseudocode that can be edited in different languages.
 * Descriptions of spatial reference systems that can be used by developers in different programming languages.
 * Notes on transformation from different representations of a CRS (WKT, PROJ.4, GCTP, GML,...).
 * Test suites with test points in a variety of coordinate systems and their lat/long and WGS84 equivelents).
 * Articles on spatial reference systems and translations useful for programmers interested in spatial reference system implementations. For example:
 * Understanding The Difference Between National Vertical Datum of 1929 and the North American Datum of 1988