Adeel Ahmad
dedccdbdae
[formaulas][util] Define coefficient containers for computing series expansions
...
The coefficient containers are defined as structs in
series_expansion.hpp file. They allow the caller to
compute expansions without specifying the size
for the output array.
2018-06-25 17:19:44 +05:00
Adeel Ahmad
1972bcda3e
[formula][util] Pass boost::array to series expansion functions
...
Using boost::array we don't have to explicitly provide
the template parameters.
2018-06-22 19:26:27 +05:00
Adeel Ahmad
78411f63c8
[doc][util][formulas][test] Add copyright information in updated files
2018-06-18 18:05:11 +05:00
Adeel Ahmad
2c7a29e7dc
[formulas][util] Improve code formatting to conform with guidelines
2018-06-15 18:52:30 +05:00
Adeel Ahmad
318a61dce0
[formulas] Use updated functions for normalization
2018-06-15 18:20:01 +05:00
Adeel Ahmad
d591d7a7bb
[util] Use existing normalize_spheroidal_coordinates class for normalizing an angle
...
- This should normalize the given angle in range (-180, 180].
- The function normalize is also moved from math.hpp to
normalize_spheroidal_coordinates.hpp where it is renamed
to normalize_values
2018-06-15 18:14:17 +05:00
Adeel Ahmad
943672bd3a
[formulas] Use template argument CT instead of double
...
This change is made in Karney's direct method.
2018-06-14 13:27:33 +05:00
Adeel Ahmad
d11b7160b2
[formulas] Fix calculation of t for finding the geodesic scale (M12)
2018-06-13 12:26:56 +05:00
Adeel Ahmad
2cba2fa83f
[test] Calculate geodesic scale (M12) using high precision arithmetic
...
Instructions for building GeographicLib are given here:
https://geographiclib.sourceforge.io/html/highprec.html
It requires the use of libquadmath package, which is present
in g++-7 by default. The cmake command used is:
cmake -DCMAKE_CXX_COMPILER=g++-7 -DGEOGRAPHICLIB_PRECISION=4 ..
Internally, GeographicLib makes use of float128 as part of Boost
Multiprecision library. To output full precision values, use:
std::setprecision(std::numeric_limits<float128>::max_digits10)
2018-06-12 12:00:52 +05:00
Adeel Ahmad
fe1b9ff8ba
[test] Update geodesic scale (M12) in GeographicLib dataset
...
M12 is calculated manually using GeographicLib. Previously,
GEOGRAPHICLIB_PRECISION was set to 2 (default) with series
order set to 6. The updated values are generated with
GEOGRAPHICLIB_PRECISION set to 3 and series order set to 7.
Build instructions are provided here:
https://geographiclib.sourceforge.io/html/install.html
2018-06-09 16:17:42 +05:00
Adeel Ahmad
96074e2ab2
[test] Use series order 2 for Karney's direct method
...
Boost Geometry dataset is created with series order 2. Therefore,
the tests fail at all other values.
2018-06-09 16:15:55 +05:00
Adeel Ahmad
043f401fbe
[util] Use Maxima generated function for computing C3x coefficients
...
The script used is geod.mac:
https://sourceforge.net/p/geographiclib/code/ci/release/tree/maxima/geod.mac
2018-06-09 16:11:46 +05:00
Adeel Ahmad
8a2dd63ccf
[util] Move sin_cos_series function to series_expansion.hpp
...
This function is extensively used for the direct and
inverse geodesic problem, therefore, it is moved
to a more accessible location.
2018-06-07 10:58:13 +05:00
Adeel Ahmad
df0cafdd19
[doc] Move Maxima scripts for geodesics to doc/other/maxima/geod.mac
2018-06-05 17:26:30 +05:00
Adeel Ahmad
a10815366a
[test] Add comment providing dataset source and how it is parsed
2018-06-05 10:21:49 +05:00
Adeel Ahmad
cc19342b4e
[util] Remove duplicated Maxima code from series_expansion.hpp
2018-06-05 09:28:37 +05:00
Adeel Ahmad
831873752d
[formulas] Use constant type variables for comparison
2018-06-04 19:12:50 +05:00
Adeel Ahmad
1ed5f103f4
[formulas] Move SeriesOrder to the end of template parameter list
2018-06-04 19:09:07 +05:00
Adeel Ahmad
4fa4a8206a
[util] Update series expansion for C3x
2018-05-31 17:40:53 +05:00
Adeel Ahmad
6ff97a6991
[test] Test Karney's method on antipodal points dataset
2018-05-31 16:36:16 +05:00
Adeel Ahmad
3c21b13c91
[test] Add geodesic length to antipodal points dataset
...
The geodesic length is calculated manually using GeographicLib/Geodesic.hpp
in C++. However, this value differs when calculated using the
CLI tool GeodSolve.
2018-05-31 16:28:09 +05:00
Adeel Ahmad
fdbb3886d3
[test] Add nearly antipodal points dataset for direct geodesic problem
...
Dataset is collected from:
https://zenodo.org/record/32156
It is then parsed using a Python script.
2018-05-30 12:14:33 +05:00
Adeel Ahmad
b8a225e1cf
[formulas] Fix direct geodesic method by performing normalization
...
- Add minus sign for B12 evaluation
2018-05-29 21:11:53 +05:00
Adeel Ahmad
3dd6bce720
[util] Add functions for normalizing and evaluating polynomial
2018-05-29 21:08:06 +05:00
Adeel Ahmad
1e31876e94
[util] Modify function for evaluting C3x coefficient
...
- Add separate function for evaluating C3 from C3x coefficient
2018-05-29 21:06:19 +05:00
Adeel Ahmad
afe7bc679c
[test] Add direct Karney's method to direct.cpp test cases
2018-05-28 16:46:20 +05:00
Adeel Ahmad
6a2897db25
[formulas][util] Add missing import and function return type
2018-05-28 12:28:14 +05:00
Adeel Ahmad
0c2b8cdbab
[formulas] Make variable declarations constant
2018-05-24 22:09:47 +05:00
Adeel Ahmad
ac4e483c92
[formulas] Compute the reduced length and geodesic scale using Karney's direct method
2018-05-24 11:26:56 +05:00
Adeel Ahmad
a0a55f361f
[util] Evaluate series and coefficients for A2 and C2 using series expansion
2018-05-24 11:18:26 +05:00
Adeel Ahmad
9e2c74afc8
[formulas] Compute the longitude for second point using the longitudinal difference
2018-05-23 14:22:40 +05:00
Adeel Ahmad
9152191986
[util] Add functions to evaluate coefficients for A3 and C3 using series expansion
2018-05-23 12:32:21 +05:00
Adeel Ahmad
881c73c90b
[formulas] Compute the latitude for second point following Karney's method
...
- Link to paper: https://arxiv.org/pdf/1109.4448.pdf
2018-05-22 17:18:37 +05:00
Adeel Ahmad
6ce1b099cb
[util] Evaluate coefficients for C1p using series expansion
...
- Fix conversion from degree to radian in sin_cos_degrees function
2018-05-21 16:32:28 +05:00
Adeel Ahmad
3700b4fafa
[util] Move series expansion functions to util/series_expansion.hpp
2018-05-19 21:49:24 +05:00
Adeel Ahmad
b6fcee8f30
[formulas] Compute sin cos series using Clenshaw summation
...
- Update function headers
2018-05-19 21:33:01 +05:00
Adeel Ahmad
320891caef
[utils] Add function for normalizing and rounding off an angle
2018-05-19 21:32:09 +05:00
Adeel Ahmad
c73ea927c4
[formulas] Add function for evaluating coefficients for C1
...
- Add SED script for converting x to CT(x)
- Improve code documentation
2018-05-15 23:43:52 +05:00
Adeel Ahmad
8d5d3bc8a9
[formulas] Add draft of direct geodesic problem from Karney (2011)
...
The paper can be found at: https://arxiv.org/pdf/1109.4448.pdf
This commit also introduces the evaluate_series_A1 function
for evaluating the series expantion, which was generated
using Maxima: http://maxima.sourceforge.net
2018-05-12 22:09:26 +05:00
Adeel Ahmad
302e240667
[utils] Add function sin_cos_degrees for evaluating sine and cosine function
2018-05-12 22:08:25 +05:00
Adam Wulkiewicz
d5fe19ce06
Merge branch 'feature/projections_optimization' into develop
2018-05-10 18:08:31 +02:00
Adam Wulkiewicz
7622c517d6
Merge branch 'fix/projections_names' into develop
2018-05-10 18:05:55 +02:00
Adam Wulkiewicz
ca62c0e4e0
Merge pull request #469 from awulkiew/feature/projections_grids
...
Add support for horizontal grid shift (nadgrids) in transformation.
2018-05-10 18:02:40 +02:00
Adam Wulkiewicz
002f1e06d9
Merge pull request #468 from awulkiew/feature/projections_params
...
Improve projections' parameters handling.
2018-05-10 18:01:50 +02:00
Adam Wulkiewicz
9b8d0a3b4c
[sectionalize] Avoid integer underflow/underflow in segment's direction calculation.
2018-04-19 23:34:24 +02:00
Adam Wulkiewicz
74df6d2d31
Merge pull request #474 from awulkiew/fix/intersection_strategies
...
Fix spherical and geographic intersection strategies for short collinear segments
2018-04-18 13:55:21 +02:00
Adam Wulkiewicz
118b82937d
[srs] Separate param names and values in datums definitions to avoid parsing of string while adding parameter.
2018-04-18 01:37:44 +02:00
Adam Wulkiewicz
548d64d97a
[srs] In pj_ellps table hold elliptical parameter name and value separately to avoid parsing of string when adding a and b/rf parameters to parameters list.
2018-04-18 00:50:44 +02:00
Adam Wulkiewicz
ae75d05c2c
[srs] Implement str_cast and use it instead of lexical_cast.
2018-04-18 00:33:47 +02:00
Adam Wulkiewicz
8feb7ca7ba
[srs] Rename types, variables, enums to lowercase.
2018-04-13 22:30:51 +02:00