Thanks for grouping the missing functions;
I've taken the liberty of converting your gdocs
into a wiki table:
That's a lot of functions... 320 to be exact.
Looking only at the "Coordinate Systems, Geodesy and Projections" group, that's still 150 functions, so I'm making the call to put these sub-groups out of scope:
- "Coordinate Systems / Intrinsic Coordinate Systems"
- "Coordinate Systems / Projected Coordinate Systems"
- "Zones, Lunes, Quadrangles, and Other Areas"
There remains 120 functions. Two sub-groups are trivial or nearly so:
- "Lengths and Angles"
- "Small Circles, Ellipses, and Spherical Distance"
Now we're down to 70 functions, which is not too bad, considering the availability of existing implementations.
The following two sub-groups contain about 50 functions, most of which you can borrow tests and m code from the geod toolbox:
- "Coordinate Systems / 3-D Coordinate Systems"
- "Modeling the Earth"
Then there's the sub-group "Coordinate Systems / Geographic Coordinate Systems". This is the most risky part, as it involves using a C library (PROJ.4) through Octave's MEX interface. It may also get ugly to make sure it compiles okay upon package installation by end users.
Finally, there's the sub-group "Great Circles, Geodesics, and Rhumb Lines". I don't have code for that, but I'm familiar with the work of Karney, who recently did a great job in this area. We should be able to integrate/port his GeographicLib without much pain (and it's GPL-compatible).
Based on the content above, I suggest the following line of attack:
- (easier) "Coordinate Systems / 3-D Coordinate Systems" & "Modeling the Earth"
- (hardest) "Coordinate Systems / Geographic Coordinate Systems"
- (easiest) "Lengths and Angles" & "Small Circles, Ellipses, and Spherical Distance"
- (harder) "Great Circles, Geodesics, and Rhumb Lines"
In this order, you'd alternate difficulty levels, and will certainly have plenty of deliverables to show even in the worst-case scenario.
Feel free to recycle the ideas above in your application.
-Felipe.
PS: here's a spreadsheet that I was using: