Giter VIP home page Giter VIP logo

geoformulas's Introduction

GeoFormulas and TerpsTest

GeoFormulas

GeoForumlas is a collection of ellipsoid formulas, written in C++, that are based on the formulas found in Appendix 2 of FAA document Order 8260.54A.

Algorithms and methods are described for calculating geodetic locations (latitudes and longitudes) on the World Geodetic System of 1984 (WGS-84) ellipsoid, resulting from intersections of geodesic and non-geodesic paths. These algorithms utilize existing distance and azimuth calculation methods to compute intersections and tangent points needed for area navigation procedure construction. The methods apply corrections to an initial spherical approximation until the error is less than the maximum allowable error, as specified by the user.

GeoFormulas can now be built as a DLL or staticly linked library. VBA macros for Microsoft Excel are also included in the directory, which allows full usage of the GeoFormulas API via the DLL. See the bottom of GeoExcelStub.cls for examples using the API.

GeoFormulas has some dependency on the STL. The version that comes with MSVC 7.1 and 8.0 are sufficient to build the GeoFormulas library.

WGS84 Ellipsoid Calculation Types

Arc Intercept             Geodesic Locus Intersect            Point on LocusP
Course Intersect          Geometric Mean Meridional           Point to Arc Tangents
Direct Arc Length         Locus Arc Intersect                 Pt is on Arc
Discretized Arc Length    Locus Course at Point               Pt is on Geodesic
Distance Intersection     Locus Intersect                     Pt is on Locus
Distance to LocusP        Locus Perpendicular Intercept       Tangent Fixed Radius Arc
Distance to LocusD        Locus Tangent Fixed Radius Arc      Vincenty Direct
ECEF                      Perpendicular Intercept             Vincenty Inverse
Geodesic Arc Intercept    Perpendicular Tangent Points

TerpsTest

TerpsTest is a test harness driven by GeoFormulas. The test data and expected results are published in FAA Order 8260.54A Appendix 2, Attachment C.

The goal of the test harness is to have a solid set of test data and expected results to run against the GeoFormulas. A great deal of effort was put into creating the test suite and to get the results within expected tolerances.

The directory 8260.54ATestData contains CSV test data used by TerpsTest. This data was scraped from the 8260_54A.pdf in Appendix 2, attachment C. 8260.54a Test Data Origin.txt contains details of history and how the data was collected. If any changes to the test data are made then update this document too.

Application test Results.txt is an implementation log tracking some my thoughts. The code comments and this document will help document how and why certain things are implemented, in order to get the expected test results.

TerpsTest is heavily dependent on Boost::RegEx to parse the CSV test data, so the Boost library must be installed with the RegEx module compiled. The initial goal of TerpsTest was to speed its development and library dependency was not taken into consideration, sorry.

By downloading and/or using this software you agree to the following terms of use:

Legal Stuff

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this software except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Which basically means: whatever you do, I can't be held accountable if something breaks.

geoformulas's People

Contributors

pkohut avatar buffetboy2001 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.