Commit Graph

4579 Commits

Author SHA1 Message Date
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
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
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
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
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
Adam Wulkiewicz
885319f2da [srs] Rename CalculationType to T to increase readability.
Furthermore:
- rename geographic_type and cartesian_type to T
- reformat base classes and ctor init lists
- rename variable named T
2018-04-13 22:01:45 +02:00
Adam Wulkiewicz
de14869fbc [srs] Rename upper-case global types and move them if possible.
- Types defined in projects.h: COMPLEX, PJ_ELLPS, PJ_DATUM, PJ_UNITS,
  PJ_PRIME_MERIDIANS.
- Move types used for global data, tables defining ellipsoids, datums,
  units and meridians to files defining the tables.
- Remove types that are not used in Boost.Geometry: DERIVS and FACTORS.
2018-04-13 19:15:34 +02:00
Adam Wulkiewicz
9f28e8d8aa [srs] Rename upper-case variable and type names. 2018-04-13 18:48:50 +02:00
Adam Wulkiewicz
4f86b6fb7e [srs] Rename macro-like variables datum type and error code.
- Names were herited from proj4.
- Replace static variables with enums.
- Add more error codes and use them with projection_exception()
  instead of magic numbers.
2018-04-12 23:46:46 +02:00
Adam Wulkiewicz
9b2bb48fae Merge branch 'develop' into fix/projections_names 2018-04-12 22:53:19 +02:00
Adam Wulkiewicz
06e53eb573 Merge branch 'develop' into fix/intersection_strategies 2018-04-12 16:20:16 +02:00
Adam Wulkiewicz
756f3951c7 [strategies] Fix zero ratio denominator calculated by sph and geo strategies. 2018-04-11 22:39:36 +02:00
Vissarion Fysikopoulos
cc381b3c7f [algorithms] [tests] Fix envelope algorithm for spherical and geographic polygons and rings 2018-04-11 17:12:27 +03:00
Adam Wulkiewicz
0a1ba2763a [srs] Rename projections' global constants.
Use lower-case names to avoid clashes with macros.
Move constants to separate file.
2018-04-09 04:03:29 +02:00
Adam Wulkiewicz
1aeef5d396 [srs] Support horizontal shift grids (nadgrids) in transformation.
Relevant proj4 code was converted to C++ and Boostified. So all grids formats
are supported (ctable, ctable2, ntv1, ntv2), also vertical geoid grid GTX
format but it is not used right now. There are some differences though:
- proj4 stores loaded grids in global storage and pointers to a relevant subset
  of grids in projection parameters structure. In Boost.Geometry this is moved
  outside transformation structure to allow users to place global storage(s)
  wherever they like.
- in proj4 the grids are loaded implicitly when there is +nadgrids parameter
  passed. In Boost.Geometry an object representing a subset of grids explicitly
  has to be initialized and then passed into transforming function.
- in proj4 grids has to be "installed" into certain directories. In
  Boost.Geometry user can implement StreamPolicy opening any input stream
  having unformatted input interface. The default one uses std::ifstream
  opening files having the same names as the ones in +nadgrids parameter in
  working directory.

Added classes:
  srs::grids, srs::ifstream_policy, srs::grids_storage,
  srs::projection_grids, srs::transformation_grids
and for multithreading:
  srs::shared_grids

Added functions (also overloads)
  srs::transformation::initialize_grids(grids_storage)
  srs::transformation::forward(in, out, transformation_grids)
  srs::transformation::inverse(in, out, transformation_grids)
2018-04-08 14:15:21 +02:00
Adam Wulkiewicz
49b9e7bfa3 Merge pull request #465 from awulkiew/feature/projections_update
Update implemented projections to proj4 5.0.0 state.
2018-04-07 14:55:17 +02:00
Adam Wulkiewicz
e3802efb04 Merge pull request #467 from vissarion/feature_box_box_fix
Few fixes in distance computation
2018-03-28 16:09:08 +02:00
Vissarion Fysikopoulos
ff6547bc7b [formulas] Fix a bug in thomas inverse formula 2018-03-28 16:59:03 +03:00
Vissarion Fysikopoulos
df23bb19b8 [strategies] Fix inverse strategy type call from point segment distance computation strategy 2018-03-28 16:54:08 +03:00
Vissarion Fysikopoulos
ab2ab3144d [strategies] [tests] Diagonal case fix for box-box distance 2018-03-28 14:42:08 +03:00
Barend Gehrels
68296965f5 ticket #13386 - workaround for some gcc compilers 2018-03-27 21:50:18 +02:00
Barend Gehrels
7bfd8c6ca3 Revert "ticket #13386 - workaround for some gcc compilers complaining about"
This reverts commit 54f5ead9e8.
2018-03-27 21:46:05 +02:00