aboutsummaryrefslogtreecommitdiff
path: root/src/transformations
AgeCommit message (Collapse)Author
2020-01-17Merge branch 'master' into rfc4_merge_back_masterEven Rouault
2020-01-07deformation.cpp and xyzgridshift.cpp: factor out common code (addresses ↵Even Rouault
https://github.com/OSGeo/PROJ/pull/1790#discussion_r363748615)
2020-01-07Remote grid: add mechanism to re-open a grid if it has changed while being ↵Even Rouault
opened
2020-01-07Grid refactoring: address review comments of ↵Even Rouault
https://github.com/OSGeo/PROJ/pull/1777 - Move content of legacy apply_gridshift.cpp and apply_vgridshift.cpp in grids.cpp - Rename nad_ functions to pj_hgrid_ - Rename internal proj_hgrid_/proj_vgrid_ functions to pj_
2020-01-01deformation.cpp: check that unit in TIFF file is 'millimetres per year' ↵Even Rouault
which is the official name in EPSG
2019-12-30deformation: add support for +grids= for GeoTIFF gridsEven Rouault
This option is to load grid(s) that have both the horizontal and vertical velocities in the same file. Can be tested with the following grid https://github.com/rouault/sample_proj_gtiff_grids/blob/master/nkgrf03vel_realigned.tif converted from the original .ct2 and .gtx with ``` gdal_translate nkgrf03vel_realigned.vrt nkgrf03vel_realigned.tif -co COMPRESS=DEFLATE -co PREDICTOR=3 -co BLOCKYSIZE=241 -co INTERLEAVE=BAND ``` where nkgrf03vel_realigned.vrt is ``` <VRTDataset rasterXSize="223" rasterYSize="241"> <SRS dataAxisToSRSAxisMapping="2,1">GEOGCRS["Unknown based on GRS80", DATUM["Unknown based on GRS80", ELLIPSOID["GRS 1980",6378137,298.257222101, LENGTHUNIT["metre",1]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433]], CS[ellipsoidal,2], AXIS["geodetic latitude (Lat)",north, ORDER[1], ANGLEUNIT["degree",0.0174532925199433]], AXIS["geodetic longitude (Lon)",east, ORDER[2], ANGLEUNIT["degree",0.0174532925199433]]] </SRS> <GeoTransform> 2.9166666666666670e+00, 1.6666666666666666e-01, 0.0000000000000000e+00, 7.3041666666666686e+01, 0.0000000000000000e+00, -8.3333333333333329e-02</GeoTransform> <Metadata> <MDI key="DESCRIPTION"></MDI> <MDI key="area_of_use">Nordic and Baltic countries</MDI> <MDI key="AREA_OR_POINT">Point</MDI> <MDI key="TIFFTAG_COPYRIGHT">The Nordic Geodetic Commission. Creative Commons Attribution 4.0 https://creativecommons.org/licenses/by/4.0/</MDI> <MDI key="TIFFTAG_DATETIME">2019:12:30 00:00:00</MDI> <MDI key="TIFFTAG_IMAGEDESCRIPTION">Deformation model covering the Nordic and Baltic countries. Used in transformations between global reference frames and the local realisations of ETRS89 in the Nordic and Baltic countries</MDI> <MDI key="TYPE">VELOCITY</MDI> </Metadata> <VRTRasterBand dataType="Float32" band="1"> <Description>east_velocity</Description> <UnitType>mm/year</UnitType> <SimpleSource> <SourceFilename relativeToVRT="0">/home/even/proj/proj-datumgrid/europe/nkgrf03vel_realigned_xy.ct2</SourceFilename> <SourceBand>2</SourceBand> <!-- GDAL exposes the first physical component of the file (longitude offset normally, here east velocity) as the second band --> <SrcRect xOff="0" yOff="0" xSize="223" ySize="241" /> <DstRect xOff="0" yOff="0" xSize="223" ySize="241" /> </SimpleSource> </VRTRasterBand> <VRTRasterBand dataType="Float32" band="2"> <Description>north_velocity</Description> <UnitType>mm/year</UnitType> <SimpleSource> <SourceFilename relativeToVRT="0">/home/even/proj/proj-datumgrid/europe/nkgrf03vel_realigned_xy.ct2</SourceFilename> <SourceBand>1</SourceBand> <!-- and the second physical component (latitude offset normally, here north velocity) as the first band --> <SrcRect xOff="0" yOff="0" xSize="223" ySize="241" /> <DstRect xOff="0" yOff="0" xSize="223" ySize="241" /> </SimpleSource> </VRTRasterBand> <VRTRasterBand dataType="Float32" band="3"> <Description>up_velocity</Description> <UnitType>mm/year</UnitType> <SimpleSource> <SourceFilename relativeToVRT="0">/home/even/proj/proj-datumgrid/europe/nkgrf03vel_realigned_z.gtx</SourceFilename> <SourceBand>1</SourceBand> <SrcRect xOff="0" yOff="0" xSize="223" ySize="241" /> <DstRect xOff="0" yOff="0" xSize="223" ySize="241" /> </SimpleSource> </VRTRasterBand> </VRTDataset> ```
2019-12-27xyzgridshift: implement defered grid loading in network contextEven Rouault
2019-12-27Handle context reassignment for Grid/GridSet/File objectsEven Rouault
2019-12-27Network: automatically use CDN resources when local resources not available, ↵Even Rouault
and networking enabled
2019-12-25Modify verbosity level of some debug/trace messagesEven Rouault
- unitconvert, ell_set and helmert were using debug level, which is too verbose. Using trace instead - proj_trans() was using trace to indicate the operation it selects. Changing it to debug
2019-12-11Add a +proj=xyzgridshift method to perform geocentric translation by grid. ↵Even Rouault
Used for French NTF to RGF93 transformation using gr3df97a.tif grid
2019-12-06Remove hgrids and vgrids member from PJ structure, and store them in ↵Even Rouault
hgridshift/vgridshift/deformation structures
2019-12-06horizontal grid shift: rework to no longer load whole grid into memoryEven Rouault
2019-12-06vertical grid shift: rework to no longer load whole grid into memoryEven Rouault
2019-10-28Various fixes/workarounds to make cppcheck 1.72 (Ubuntu 16.04) and ↵Even Rouault
HEAD/1.90dev happy (fixes #1648)
2019-09-19Merge pull request #1618 from cffk/c99-math-updateCharles Karney
Remove unneeded C99 compatibility functions from math.cpp and proj_math.h I'll do the clean up of the -std=c89 flags etc. as a separate pull request.
2019-09-18Delete proj_math.h. Replace includes by <math.h>; we'll see if anyoneCharles Karney
needs <limits.h>. Update scripts/reference_exported_symbols.txt and src/proj_symbol_rename.h.
2019-09-17helmert: validate scale parameter to avoid later division by zero. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16106
2019-03-30affine: remove duplicate #include "proj_internal.h"Chris Mayo
Introduced by "Merge projects.h into proj_internal.h" 8ab6f68.
2019-03-29Remove duplicate instances of #include "proj_internal.h"Chris Mayo
Introduced by "Merge projects.h into proj_internal.h" 8ab6f683.
2019-03-17Merge pull request #1322 from rouault/ossfuzz_fixesKristian Evers
Various ossfuzz fixes
2019-03-16Use 1st eccentricity instead of 2nd eccentricityKristian Evers
By mistake the second eccentricity was used in a few places in the Molodensky transform. According to the literature the first eccentricity should always be used in the eccentricity. This only affects the output slightly. Reported test coordinates differed by less than a millimeter. Fixes #1321
2019-03-16Helmert: avoid potential division by zeroEven Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11893 Credit to OSS Fuzz
2019-03-15Molodensky: avoid division by zeroEven Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13069 Credit to OSS Fuzz
2019-02-20Apply multiplier in proj_vgrid_value()Even Rouault
2019-02-20vgridshift: propagate multiplier to avoid false-positive detection of nodata ↵Even Rouault
values in the grids with US VERTCON grids that are in millimeters
2019-02-14deformation: Replace +t_obs with +dtKristian Evers
The +t_obs parameter was confusing for users since it effectively overwrote the observation time in input coordinates. To make it more clear what is the operation is doing, users are now required to directly specify the time span for which they wish to apply a given deformation. The parameter +dt has been added for that purpose. The new parameter is mutually exclusive with +t_epoch. +dt is used when deformation for a set amount of time is needed and +t_epoch is used (in conjunction with the observation time of the input coordinate) when deformation from a specific epoch to the observation time is needed.
2019-02-14Reverse direction of deformation operations/transformations/deformationKristian Evers
Changed the direction of dt-calculation to follow the same convention as helmert. Changed from dt = t_c - t_obs to dt = t_obs - t_c, which effectively reverses the direction of the operation. Existing projstrings using deformation can simply reverse the direction of the operation to achieve the same results as before this commit.
2019-02-01Remove +t_obs parameter from helmert operationKristian Evers
2019-01-03Rename PJ_IO_UNITS_ANGULAR to PJ_IO_UNITS_RADIANSKristian Evers
This communicates better what the unit actually is. It also opens the door for potentially adding PJ_IO_UNITS_DEGREES in the future in order to coordinates in degrees correctly as well.
2018-12-30Merge projects.h into proj_internal.hEven Rouault
2018-12-30projects.h: remove deprecated XY, XYZ, LP, LPZ, UV, UVW, projUV and projUVW ↵Even Rouault
structures
2018-12-27Remove proj_def.dat (fixes #201)Even Rouault
2018-12-26cpp conversion: remove useless pj_, PJ_ and proj_ filename prefixesEven Rouault
2018-12-26cpp conversion: move source files in apps/ iso19111/ conversions/ ↵Even Rouault
projections/ transformations/ tests/ subdirectories