aboutsummaryrefslogtreecommitdiff
path: root/src/transformations/deformation.cpp
AgeCommit message (Collapse)Author
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-06Remove hgrids and vgrids member from PJ structure, and store them in ↵Even Rouault
hgridshift/vgridshift/deformation structures
2019-10-28Various fixes/workarounds to make cppcheck 1.72 (Ubuntu 16.04) and ↵Even Rouault
HEAD/1.90dev happy (fixes #1648)
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-03-29Remove duplicate instances of #include "proj_internal.h"Chris Mayo
Introduced by "Merge projects.h into proj_internal.h" 8ab6f683.
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.
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