@math.gl/projection 0.0.0-stage → 5.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/APACHE-2.0-LICENSE.txt +55 -0
- package/PROJ-LICENSE.txt +37 -0
- package/PROJ4-LICENSE.md +29 -0
- package/README.md +27 -2
- package/THIRD-PARTY-NOTICES.md +163 -0
- package/dist/deformation.cjs +189 -0
- package/dist/deformation.cjs.map +6 -0
- package/dist/deformation.d.ts +3 -0
- package/dist/deformation.d.ts.map +1 -0
- package/dist/deformation.js +5 -0
- package/dist/deformation.js.map +1 -0
- package/dist/experimental/catalogue-kernel.d.ts +7 -0
- package/dist/experimental/catalogue-kernel.d.ts.map +1 -0
- package/dist/experimental/catalogue-kernel.js +36 -0
- package/dist/experimental/catalogue-kernel.js.map +1 -0
- package/dist/experimental/common/adjust_lat.d.ts +2 -0
- package/dist/experimental/common/adjust_lat.d.ts.map +1 -0
- package/dist/experimental/common/adjust_lat.js +10 -0
- package/dist/experimental/common/adjust_lat.js.map +1 -0
- package/dist/experimental/common/adjust_lon.d.ts +2 -0
- package/dist/experimental/common/adjust_lon.d.ts.map +1 -0
- package/dist/experimental/common/adjust_lon.js +13 -0
- package/dist/experimental/common/adjust_lon.js.map +1 -0
- package/dist/experimental/common/asinhy.d.ts +2 -0
- package/dist/experimental/common/asinhy.d.ts.map +1 -0
- package/dist/experimental/common/asinhy.js +12 -0
- package/dist/experimental/common/asinhy.js.map +1 -0
- package/dist/experimental/common/asinz.d.ts +2 -0
- package/dist/experimental/common/asinz.d.ts.map +1 -0
- package/dist/experimental/common/asinz.js +11 -0
- package/dist/experimental/common/asinz.js.map +1 -0
- package/dist/experimental/common/authlat.d.ts +2 -0
- package/dist/experimental/common/authlat.d.ts.map +1 -0
- package/dist/experimental/common/authlat.js +9 -0
- package/dist/experimental/common/authlat.js.map +1 -0
- package/dist/experimental/common/authset.d.ts +2 -0
- package/dist/experimental/common/authset.d.ts.map +1 -0
- package/dist/experimental/common/authset.js +24 -0
- package/dist/experimental/common/authset.js.map +1 -0
- package/dist/experimental/common/clens.d.ts +2 -0
- package/dist/experimental/common/clens.d.ts.map +1 -0
- package/dist/experimental/common/clens.js +18 -0
- package/dist/experimental/common/clens.js.map +1 -0
- package/dist/experimental/common/clens_cmplx.d.ts +5 -0
- package/dist/experimental/common/clens_cmplx.d.ts.map +1 -0
- package/dist/experimental/common/clens_cmplx.js +34 -0
- package/dist/experimental/common/clens_cmplx.js.map +1 -0
- package/dist/experimental/common/constants.d.ts +9 -0
- package/dist/experimental/common/constants.d.ts.map +1 -0
- package/dist/experimental/common/constants.js +14 -0
- package/dist/experimental/common/constants.js.map +1 -0
- package/dist/experimental/common/cosh.d.ts +2 -0
- package/dist/experimental/common/cosh.d.ts.map +1 -0
- package/dist/experimental/common/cosh.js +10 -0
- package/dist/experimental/common/cosh.js.map +1 -0
- package/dist/experimental/common/e0fn.d.ts +2 -0
- package/dist/experimental/common/e0fn.d.ts.map +1 -0
- package/dist/experimental/common/e0fn.js +8 -0
- package/dist/experimental/common/e0fn.js.map +1 -0
- package/dist/experimental/common/e1fn.d.ts +2 -0
- package/dist/experimental/common/e1fn.d.ts.map +1 -0
- package/dist/experimental/common/e1fn.js +8 -0
- package/dist/experimental/common/e1fn.js.map +1 -0
- package/dist/experimental/common/e2fn.d.ts +2 -0
- package/dist/experimental/common/e2fn.d.ts.map +1 -0
- package/dist/experimental/common/e2fn.js +8 -0
- package/dist/experimental/common/e2fn.js.map +1 -0
- package/dist/experimental/common/e3fn.d.ts +2 -0
- package/dist/experimental/common/e3fn.d.ts.map +1 -0
- package/dist/experimental/common/e3fn.js +8 -0
- package/dist/experimental/common/e3fn.js.map +1 -0
- package/dist/experimental/common/fL.d.ts +2 -0
- package/dist/experimental/common/fL.d.ts.map +1 -0
- package/dist/experimental/common/fL.js +9 -0
- package/dist/experimental/common/fL.js.map +1 -0
- package/dist/experimental/common/gN.d.ts +2 -0
- package/dist/experimental/common/gN.d.ts.map +1 -0
- package/dist/experimental/common/gN.js +9 -0
- package/dist/experimental/common/gN.js.map +1 -0
- package/dist/experimental/common/gatg.d.ts +2 -0
- package/dist/experimental/common/gatg.d.ts.map +1 -0
- package/dist/experimental/common/gatg.js +18 -0
- package/dist/experimental/common/gatg.js.map +1 -0
- package/dist/experimental/common/hypot.d.ts +2 -0
- package/dist/experimental/common/hypot.d.ts.map +1 -0
- package/dist/experimental/common/hypot.js +12 -0
- package/dist/experimental/common/hypot.js.map +1 -0
- package/dist/experimental/common/imlfn.d.ts +2 -0
- package/dist/experimental/common/imlfn.d.ts.map +1 -0
- package/dist/experimental/common/imlfn.js +21 -0
- package/dist/experimental/common/imlfn.js.map +1 -0
- package/dist/experimental/common/invlatiso.d.ts +2 -0
- package/dist/experimental/common/invlatiso.d.ts.map +1 -0
- package/dist/experimental/common/invlatiso.js +20 -0
- package/dist/experimental/common/invlatiso.js.map +1 -0
- package/dist/experimental/common/iqsfnz.d.ts +2 -0
- package/dist/experimental/common/iqsfnz.d.ts.map +1 -0
- package/dist/experimental/common/iqsfnz.js +44 -0
- package/dist/experimental/common/iqsfnz.js.map +1 -0
- package/dist/experimental/common/latiso.d.ts +2 -0
- package/dist/experimental/common/latiso.d.ts.map +1 -0
- package/dist/experimental/common/latiso.js +19 -0
- package/dist/experimental/common/latiso.js.map +1 -0
- package/dist/experimental/common/log1py.d.ts +2 -0
- package/dist/experimental/common/log1py.d.ts.map +1 -0
- package/dist/experimental/common/log1py.js +10 -0
- package/dist/experimental/common/log1py.js.map +1 -0
- package/dist/experimental/common/mlfn.d.ts +2 -0
- package/dist/experimental/common/mlfn.d.ts.map +1 -0
- package/dist/experimental/common/mlfn.js +8 -0
- package/dist/experimental/common/mlfn.js.map +1 -0
- package/dist/experimental/common/msfnz.d.ts +2 -0
- package/dist/experimental/common/msfnz.d.ts.map +1 -0
- package/dist/experimental/common/msfnz.js +9 -0
- package/dist/experimental/common/msfnz.js.map +1 -0
- package/dist/experimental/common/phi2z.d.ts +2 -0
- package/dist/experimental/common/phi2z.d.ts.map +1 -0
- package/dist/experimental/common/phi2z.js +21 -0
- package/dist/experimental/common/phi2z.js.map +1 -0
- package/dist/experimental/common/pj_enfn.d.ts +2 -0
- package/dist/experimental/common/pj_enfn.d.ts.map +1 -0
- package/dist/experimental/common/pj_enfn.js +28 -0
- package/dist/experimental/common/pj_enfn.js.map +1 -0
- package/dist/experimental/common/pj_inv_mlfn.d.ts +2 -0
- package/dist/experimental/common/pj_inv_mlfn.d.ts.map +1 -0
- package/dist/experimental/common/pj_inv_mlfn.js +26 -0
- package/dist/experimental/common/pj_inv_mlfn.js.map +1 -0
- package/dist/experimental/common/pj_mlfn.d.ts +2 -0
- package/dist/experimental/common/pj_mlfn.d.ts.map +1 -0
- package/dist/experimental/common/pj_mlfn.js +10 -0
- package/dist/experimental/common/pj_mlfn.js.map +1 -0
- package/dist/experimental/common/qsfnz.d.ts +2 -0
- package/dist/experimental/common/qsfnz.d.ts.map +1 -0
- package/dist/experimental/common/qsfnz.js +16 -0
- package/dist/experimental/common/qsfnz.js.map +1 -0
- package/dist/experimental/common/sign.d.ts +2 -0
- package/dist/experimental/common/sign.d.ts.map +1 -0
- package/dist/experimental/common/sign.js +8 -0
- package/dist/experimental/common/sign.js.map +1 -0
- package/dist/experimental/common/sinh.d.ts +2 -0
- package/dist/experimental/common/sinh.d.ts.map +1 -0
- package/dist/experimental/common/sinh.js +10 -0
- package/dist/experimental/common/sinh.js.map +1 -0
- package/dist/experimental/common/srat.d.ts +2 -0
- package/dist/experimental/common/srat.d.ts.map +1 -0
- package/dist/experimental/common/srat.js +8 -0
- package/dist/experimental/common/srat.js.map +1 -0
- package/dist/experimental/common/tsfnz.d.ts +2 -0
- package/dist/experimental/common/tsfnz.d.ts.map +1 -0
- package/dist/experimental/common/tsfnz.js +12 -0
- package/dist/experimental/common/tsfnz.js.map +1 -0
- package/dist/experimental/common/vincenty.d.ts +29 -0
- package/dist/experimental/common/vincenty.d.ts.map +1 -0
- package/dist/experimental/common/vincenty.js +134 -0
- package/dist/experimental/common/vincenty.js.map +1 -0
- package/dist/experimental/core.cjs +2868 -0
- package/dist/experimental/core.cjs.map +6 -0
- package/dist/experimental/core.d.ts +13 -0
- package/dist/experimental/core.d.ts.map +1 -0
- package/dist/experimental/core.js +9 -0
- package/dist/experimental/core.js.map +1 -0
- package/dist/experimental/crs/datum-table.d.ts +8 -0
- package/dist/experimental/crs/datum-table.d.ts.map +1 -0
- package/dist/experimental/crs/datum-table.js +1365 -0
- package/dist/experimental/crs/datum-table.js.map +1 -0
- package/dist/experimental/crs/ellipsoid-table.d.ts +8 -0
- package/dist/experimental/crs/ellipsoid-table.d.ts.map +1 -0
- package/dist/experimental/crs/ellipsoid-table.js +229 -0
- package/dist/experimental/crs/ellipsoid-table.js.map +1 -0
- package/dist/experimental/crs/normalize.d.ts +8 -0
- package/dist/experimental/crs/normalize.d.ts.map +1 -0
- package/dist/experimental/crs/normalize.js +277 -0
- package/dist/experimental/crs/normalize.js.map +1 -0
- package/dist/experimental/crs/primemeridian-table.d.ts +3 -0
- package/dist/experimental/crs/primemeridian-table.d.ts.map +1 -0
- package/dist/experimental/crs/primemeridian-table.js +20 -0
- package/dist/experimental/crs/primemeridian-table.js.map +1 -0
- package/dist/experimental/crs/projjson.cjs +1847 -0
- package/dist/experimental/crs/projjson.cjs.map +6 -0
- package/dist/experimental/crs/projjson.d.ts +4 -0
- package/dist/experimental/crs/projjson.d.ts.map +1 -0
- package/dist/experimental/crs/projjson.js +12 -0
- package/dist/experimental/crs/projjson.js.map +1 -0
- package/dist/experimental/crs/spatial-reference.d.ts +11 -0
- package/dist/experimental/crs/spatial-reference.d.ts.map +1 -0
- package/dist/experimental/crs/spatial-reference.js +91 -0
- package/dist/experimental/crs/spatial-reference.js.map +1 -0
- package/dist/experimental/crs/structured.d.ts +8 -0
- package/dist/experimental/crs/structured.d.ts.map +1 -0
- package/dist/experimental/crs/structured.js +481 -0
- package/dist/experimental/crs/structured.js.map +1 -0
- package/dist/experimental/crs/types.d.ts +58 -0
- package/dist/experimental/crs/types.d.ts.map +1 -0
- package/dist/experimental/crs/types.js +21 -0
- package/dist/experimental/crs/types.js.map +1 -0
- package/dist/experimental/crs/units-table.d.ts +64 -0
- package/dist/experimental/crs/units-table.d.ts.map +1 -0
- package/dist/experimental/crs/units-table.js +27 -0
- package/dist/experimental/crs/units-table.js.map +1 -0
- package/dist/experimental/crs/wkt.cjs +2507 -0
- package/dist/experimental/crs/wkt.cjs.map +6 -0
- package/dist/experimental/crs/wkt.d.ts +3 -0
- package/dist/experimental/crs/wkt.d.ts.map +1 -0
- package/dist/experimental/crs/wkt.js +181 -0
- package/dist/experimental/crs/wkt.js.map +1 -0
- package/dist/experimental/datum.d.ts +17 -0
- package/dist/experimental/datum.d.ts.map +1 -0
- package/dist/experimental/datum.js +160 -0
- package/dist/experimental/datum.js.map +1 -0
- package/dist/experimental/deformation.d.ts +25 -0
- package/dist/experimental/deformation.d.ts.map +1 -0
- package/dist/experimental/deformation.js +98 -0
- package/dist/experimental/deformation.js.map +1 -0
- package/dist/experimental/entries/projections/aea.cjs +367 -0
- package/dist/experimental/entries/projections/aea.cjs.map +6 -0
- package/dist/experimental/entries/projections/aea.d.ts +2 -0
- package/dist/experimental/entries/projections/aea.d.ts.map +1 -0
- package/dist/experimental/entries/projections/aea.js +5 -0
- package/dist/experimental/entries/projections/aea.js.map +1 -0
- package/dist/experimental/entries/projections/aeqd.cjs +461 -0
- package/dist/experimental/entries/projections/aeqd.cjs.map +6 -0
- package/dist/experimental/entries/projections/aeqd.d.ts +2 -0
- package/dist/experimental/entries/projections/aeqd.d.ts.map +1 -0
- package/dist/experimental/entries/projections/aeqd.js +5 -0
- package/dist/experimental/entries/projections/aeqd.js.map +1 -0
- package/dist/experimental/entries/projections/bonne.cjs +359 -0
- package/dist/experimental/entries/projections/bonne.cjs.map +6 -0
- package/dist/experimental/entries/projections/bonne.d.ts +2 -0
- package/dist/experimental/entries/projections/bonne.d.ts.map +1 -0
- package/dist/experimental/entries/projections/bonne.js +5 -0
- package/dist/experimental/entries/projections/bonne.js.map +1 -0
- package/dist/experimental/entries/projections/cass.cjs +347 -0
- package/dist/experimental/entries/projections/cass.cjs.map +6 -0
- package/dist/experimental/entries/projections/cass.d.ts +2 -0
- package/dist/experimental/entries/projections/cass.d.ts.map +1 -0
- package/dist/experimental/entries/projections/cass.js +5 -0
- package/dist/experimental/entries/projections/cass.js.map +1 -0
- package/dist/experimental/entries/projections/cea.cjs +283 -0
- package/dist/experimental/entries/projections/cea.cjs.map +6 -0
- package/dist/experimental/entries/projections/cea.d.ts +2 -0
- package/dist/experimental/entries/projections/cea.d.ts.map +1 -0
- package/dist/experimental/entries/projections/cea.js +5 -0
- package/dist/experimental/entries/projections/cea.js.map +1 -0
- package/dist/experimental/entries/projections/eck6.cjs +306 -0
- package/dist/experimental/entries/projections/eck6.cjs.map +6 -0
- package/dist/experimental/entries/projections/eck6.d.ts +2 -0
- package/dist/experimental/entries/projections/eck6.d.ts.map +1 -0
- package/dist/experimental/entries/projections/eck6.js +5 -0
- package/dist/experimental/entries/projections/eck6.js.map +1 -0
- package/dist/experimental/entries/projections/eqc.cjs +119 -0
- package/dist/experimental/entries/projections/eqc.cjs.map +6 -0
- package/dist/experimental/entries/projections/eqc.d.ts +2 -0
- package/dist/experimental/entries/projections/eqc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/eqc.js +5 -0
- package/dist/experimental/entries/projections/eqc.js.map +1 -0
- package/dist/experimental/entries/projections/eqdc.cjs +377 -0
- package/dist/experimental/entries/projections/eqdc.cjs.map +6 -0
- package/dist/experimental/entries/projections/eqdc.d.ts +2 -0
- package/dist/experimental/entries/projections/eqdc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/eqdc.js +5 -0
- package/dist/experimental/entries/projections/eqdc.js.map +1 -0
- package/dist/experimental/entries/projections/eqearth.cjs +292 -0
- package/dist/experimental/entries/projections/eqearth.cjs.map +6 -0
- package/dist/experimental/entries/projections/eqearth.d.ts +2 -0
- package/dist/experimental/entries/projections/eqearth.d.ts.map +1 -0
- package/dist/experimental/entries/projections/eqearth.js +5 -0
- package/dist/experimental/entries/projections/eqearth.js.map +1 -0
- package/dist/experimental/entries/projections/equi.cjs +222 -0
- package/dist/experimental/entries/projections/equi.cjs.map +6 -0
- package/dist/experimental/entries/projections/equi.d.ts +2 -0
- package/dist/experimental/entries/projections/equi.d.ts.map +1 -0
- package/dist/experimental/entries/projections/equi.js +5 -0
- package/dist/experimental/entries/projections/equi.js.map +1 -0
- package/dist/experimental/entries/projections/etmerc.cjs +618 -0
- package/dist/experimental/entries/projections/etmerc.cjs.map +6 -0
- package/dist/experimental/entries/projections/etmerc.d.ts +2 -0
- package/dist/experimental/entries/projections/etmerc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/etmerc.js +5 -0
- package/dist/experimental/entries/projections/etmerc.js.map +1 -0
- package/dist/experimental/entries/projections/geocent.cjs +161 -0
- package/dist/experimental/entries/projections/geocent.cjs.map +6 -0
- package/dist/experimental/entries/projections/geocent.d.ts +2 -0
- package/dist/experimental/entries/projections/geocent.d.ts.map +1 -0
- package/dist/experimental/entries/projections/geocent.js +5 -0
- package/dist/experimental/entries/projections/geocent.js.map +1 -0
- package/dist/experimental/entries/projections/geos.cjs +328 -0
- package/dist/experimental/entries/projections/geos.cjs.map +6 -0
- package/dist/experimental/entries/projections/geos.d.ts +2 -0
- package/dist/experimental/entries/projections/geos.d.ts.map +1 -0
- package/dist/experimental/entries/projections/geos.js +5 -0
- package/dist/experimental/entries/projections/geos.js.map +1 -0
- package/dist/experimental/entries/projections/gnom.cjs +274 -0
- package/dist/experimental/entries/projections/gnom.cjs.map +6 -0
- package/dist/experimental/entries/projections/gnom.d.ts +2 -0
- package/dist/experimental/entries/projections/gnom.d.ts.map +1 -0
- package/dist/experimental/entries/projections/gnom.js +5 -0
- package/dist/experimental/entries/projections/gnom.js.map +1 -0
- package/dist/experimental/entries/projections/gstmerc.cjs +266 -0
- package/dist/experimental/entries/projections/gstmerc.cjs.map +6 -0
- package/dist/experimental/entries/projections/gstmerc.d.ts +2 -0
- package/dist/experimental/entries/projections/gstmerc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/gstmerc.js +5 -0
- package/dist/experimental/entries/projections/gstmerc.js.map +1 -0
- package/dist/experimental/entries/projections/krovak.cjs +301 -0
- package/dist/experimental/entries/projections/krovak.cjs.map +6 -0
- package/dist/experimental/entries/projections/krovak.d.ts +2 -0
- package/dist/experimental/entries/projections/krovak.d.ts.map +1 -0
- package/dist/experimental/entries/projections/krovak.js +5 -0
- package/dist/experimental/entries/projections/krovak.js.map +1 -0
- package/dist/experimental/entries/projections/laea.cjs +477 -0
- package/dist/experimental/entries/projections/laea.cjs.map +6 -0
- package/dist/experimental/entries/projections/laea.d.ts +2 -0
- package/dist/experimental/entries/projections/laea.d.ts.map +1 -0
- package/dist/experimental/entries/projections/laea.js +5 -0
- package/dist/experimental/entries/projections/laea.js.map +1 -0
- package/dist/experimental/entries/projections/lcc.cjs +368 -0
- package/dist/experimental/entries/projections/lcc.cjs.map +6 -0
- package/dist/experimental/entries/projections/lcc.d.ts +2 -0
- package/dist/experimental/entries/projections/lcc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/lcc.js +5 -0
- package/dist/experimental/entries/projections/lcc.js.map +1 -0
- package/dist/experimental/entries/projections/merc.cjs +201 -0
- package/dist/experimental/entries/projections/merc.cjs.map +6 -0
- package/dist/experimental/entries/projections/merc.d.ts +2 -0
- package/dist/experimental/entries/projections/merc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/merc.js +5 -0
- package/dist/experimental/entries/projections/merc.js.map +1 -0
- package/dist/experimental/entries/projections/mill.cjs +217 -0
- package/dist/experimental/entries/projections/mill.cjs.map +6 -0
- package/dist/experimental/entries/projections/mill.d.ts +2 -0
- package/dist/experimental/entries/projections/mill.d.ts.map +1 -0
- package/dist/experimental/entries/projections/mill.js +5 -0
- package/dist/experimental/entries/projections/mill.js.map +1 -0
- package/dist/experimental/entries/projections/moll.cjs +257 -0
- package/dist/experimental/entries/projections/moll.cjs.map +6 -0
- package/dist/experimental/entries/projections/moll.d.ts +2 -0
- package/dist/experimental/entries/projections/moll.d.ts.map +1 -0
- package/dist/experimental/entries/projections/moll.js +5 -0
- package/dist/experimental/entries/projections/moll.js.map +1 -0
- package/dist/experimental/entries/projections/nzmg.cjs +346 -0
- package/dist/experimental/entries/projections/nzmg.cjs.map +6 -0
- package/dist/experimental/entries/projections/nzmg.d.ts +2 -0
- package/dist/experimental/entries/projections/nzmg.d.ts.map +1 -0
- package/dist/experimental/entries/projections/nzmg.js +5 -0
- package/dist/experimental/entries/projections/nzmg.js.map +1 -0
- package/dist/experimental/entries/projections/ob_tran.cjs +233 -0
- package/dist/experimental/entries/projections/ob_tran.cjs.map +6 -0
- package/dist/experimental/entries/projections/ob_tran.d.ts +2 -0
- package/dist/experimental/entries/projections/ob_tran.d.ts.map +1 -0
- package/dist/experimental/entries/projections/ob_tran.js +5 -0
- package/dist/experimental/entries/projections/ob_tran.js.map +1 -0
- package/dist/experimental/entries/projections/omerc.cjs +479 -0
- package/dist/experimental/entries/projections/omerc.cjs.map +6 -0
- package/dist/experimental/entries/projections/omerc.d.ts +2 -0
- package/dist/experimental/entries/projections/omerc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/omerc.js +5 -0
- package/dist/experimental/entries/projections/omerc.js.map +1 -0
- package/dist/experimental/entries/projections/ortho.cjs +276 -0
- package/dist/experimental/entries/projections/ortho.cjs.map +6 -0
- package/dist/experimental/entries/projections/ortho.d.ts +2 -0
- package/dist/experimental/entries/projections/ortho.d.ts.map +1 -0
- package/dist/experimental/entries/projections/ortho.js +5 -0
- package/dist/experimental/entries/projections/ortho.js.map +1 -0
- package/dist/experimental/entries/projections/poly.cjs +326 -0
- package/dist/experimental/entries/projections/poly.cjs.map +6 -0
- package/dist/experimental/entries/projections/poly.d.ts +2 -0
- package/dist/experimental/entries/projections/poly.d.ts.map +1 -0
- package/dist/experimental/entries/projections/poly.js +5 -0
- package/dist/experimental/entries/projections/poly.js.map +1 -0
- package/dist/experimental/entries/projections/qsc.cjs +455 -0
- package/dist/experimental/entries/projections/qsc.cjs.map +6 -0
- package/dist/experimental/entries/projections/qsc.d.ts +2 -0
- package/dist/experimental/entries/projections/qsc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/qsc.js +5 -0
- package/dist/experimental/entries/projections/qsc.js.map +1 -0
- package/dist/experimental/entries/projections/robin.cjs +331 -0
- package/dist/experimental/entries/projections/robin.cjs.map +6 -0
- package/dist/experimental/entries/projections/robin.d.ts +2 -0
- package/dist/experimental/entries/projections/robin.d.ts.map +1 -0
- package/dist/experimental/entries/projections/robin.js +5 -0
- package/dist/experimental/entries/projections/robin.js.map +1 -0
- package/dist/experimental/entries/projections/sinu.cjs +330 -0
- package/dist/experimental/entries/projections/sinu.cjs.map +6 -0
- package/dist/experimental/entries/projections/sinu.d.ts +2 -0
- package/dist/experimental/entries/projections/sinu.d.ts.map +1 -0
- package/dist/experimental/entries/projections/sinu.js +5 -0
- package/dist/experimental/entries/projections/sinu.js.map +1 -0
- package/dist/experimental/entries/projections/somerc.cjs +228 -0
- package/dist/experimental/entries/projections/somerc.cjs.map +6 -0
- package/dist/experimental/entries/projections/somerc.d.ts +2 -0
- package/dist/experimental/entries/projections/somerc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/somerc.js +5 -0
- package/dist/experimental/entries/projections/somerc.js.map +1 -0
- package/dist/experimental/entries/projections/stere.cjs +379 -0
- package/dist/experimental/entries/projections/stere.cjs.map +6 -0
- package/dist/experimental/entries/projections/stere.d.ts +2 -0
- package/dist/experimental/entries/projections/stere.d.ts.map +1 -0
- package/dist/experimental/entries/projections/stere.js +5 -0
- package/dist/experimental/entries/projections/stere.js.map +1 -0
- package/dist/experimental/entries/projections/sterea.cjs +328 -0
- package/dist/experimental/entries/projections/sterea.cjs.map +6 -0
- package/dist/experimental/entries/projections/sterea.d.ts +2 -0
- package/dist/experimental/entries/projections/sterea.d.ts.map +1 -0
- package/dist/experimental/entries/projections/sterea.js +5 -0
- package/dist/experimental/entries/projections/sterea.js.map +1 -0
- package/dist/experimental/entries/projections/tmerc.cjs +618 -0
- package/dist/experimental/entries/projections/tmerc.cjs.map +6 -0
- package/dist/experimental/entries/projections/tmerc.d.ts +2 -0
- package/dist/experimental/entries/projections/tmerc.d.ts.map +1 -0
- package/dist/experimental/entries/projections/tmerc.js +5 -0
- package/dist/experimental/entries/projections/tmerc.js.map +1 -0
- package/dist/experimental/entries/projections/tpers.cjs +340 -0
- package/dist/experimental/entries/projections/tpers.cjs.map +6 -0
- package/dist/experimental/entries/projections/tpers.d.ts +2 -0
- package/dist/experimental/entries/projections/tpers.d.ts.map +1 -0
- package/dist/experimental/entries/projections/tpers.js +5 -0
- package/dist/experimental/entries/projections/tpers.js.map +1 -0
- package/dist/experimental/entries/projections/utm.cjs +644 -0
- package/dist/experimental/entries/projections/utm.cjs.map +6 -0
- package/dist/experimental/entries/projections/utm.d.ts +2 -0
- package/dist/experimental/entries/projections/utm.d.ts.map +1 -0
- package/dist/experimental/entries/projections/utm.js +5 -0
- package/dist/experimental/entries/projections/utm.js.map +1 -0
- package/dist/experimental/entries/projections/vandg.cjs +301 -0
- package/dist/experimental/entries/projections/vandg.cjs.map +6 -0
- package/dist/experimental/entries/projections/vandg.d.ts +2 -0
- package/dist/experimental/entries/projections/vandg.d.ts.map +1 -0
- package/dist/experimental/entries/projections/vandg.js +5 -0
- package/dist/experimental/entries/projections/vandg.js.map +1 -0
- package/dist/experimental/exact-helmert.d.ts +9 -0
- package/dist/experimental/exact-helmert.d.ts.map +1 -0
- package/dist/experimental/exact-helmert.js +32 -0
- package/dist/experimental/exact-helmert.js.map +1 -0
- package/dist/experimental/flat-projection.d.ts +13 -0
- package/dist/experimental/flat-projection.d.ts.map +1 -0
- package/dist/experimental/flat-projection.js +61 -0
- package/dist/experimental/flat-projection.js.map +1 -0
- package/dist/experimental/grids/geotiff.cjs +180 -0
- package/dist/experimental/grids/geotiff.cjs.map +6 -0
- package/dist/experimental/grids/geotiff.d.ts +23 -0
- package/dist/experimental/grids/geotiff.d.ts.map +1 -0
- package/dist/experimental/grids/geotiff.js +59 -0
- package/dist/experimental/grids/geotiff.js.map +1 -0
- package/dist/experimental/grids/grid.d.ts +4 -0
- package/dist/experimental/grids/grid.d.ts.map +1 -0
- package/dist/experimental/grids/grid.js +111 -0
- package/dist/experimental/grids/grid.js.map +1 -0
- package/dist/experimental/grids/gtx.cjs +91 -0
- package/dist/experimental/grids/gtx.cjs.map +6 -0
- package/dist/experimental/grids/gtx.d.ts +7 -0
- package/dist/experimental/grids/gtx.d.ts.map +1 -0
- package/dist/experimental/grids/gtx.js +30 -0
- package/dist/experimental/grids/gtx.js.map +1 -0
- package/dist/experimental/grids/ntv2.cjs +181 -0
- package/dist/experimental/grids/ntv2.cjs.map +6 -0
- package/dist/experimental/grids/ntv2.d.ts +8 -0
- package/dist/experimental/grids/ntv2.d.ts.map +1 -0
- package/dist/experimental/grids/ntv2.js +56 -0
- package/dist/experimental/grids/ntv2.js.map +1 -0
- package/dist/experimental/grids/scalar-geotiff.d.ts +58 -0
- package/dist/experimental/grids/scalar-geotiff.d.ts.map +1 -0
- package/dist/experimental/grids/scalar-geotiff.js +147 -0
- package/dist/experimental/grids/scalar-geotiff.js.map +1 -0
- package/dist/experimental/grids/types.d.ts +35 -0
- package/dist/experimental/grids/types.d.ts.map +1 -0
- package/dist/experimental/grids/types.js +2 -0
- package/dist/experimental/grids/types.js.map +1 -0
- package/dist/experimental/grids/velocity-geotiff.cjs +247 -0
- package/dist/experimental/grids/velocity-geotiff.cjs.map +6 -0
- package/dist/experimental/grids/velocity-geotiff.d.ts +11 -0
- package/dist/experimental/grids/velocity-geotiff.d.ts.map +1 -0
- package/dist/experimental/grids/velocity-geotiff.js +61 -0
- package/dist/experimental/grids/velocity-geotiff.js.map +1 -0
- package/dist/experimental/grids/velocity.d.ts +21 -0
- package/dist/experimental/grids/velocity.d.ts.map +1 -0
- package/dist/experimental/grids/velocity.js +29 -0
- package/dist/experimental/grids/velocity.js.map +1 -0
- package/dist/experimental/grids/vertical-geotiff.cjs +195 -0
- package/dist/experimental/grids/vertical-geotiff.cjs.map +6 -0
- package/dist/experimental/grids/vertical-geotiff.d.ts +6 -0
- package/dist/experimental/grids/vertical-geotiff.d.ts.map +1 -0
- package/dist/experimental/grids/vertical-geotiff.js +20 -0
- package/dist/experimental/grids/vertical-geotiff.js.map +1 -0
- package/dist/experimental/grids/vertical.cjs +80 -0
- package/dist/experimental/grids/vertical.cjs.map +6 -0
- package/dist/experimental/grids/vertical.d.ts +22 -0
- package/dist/experimental/grids/vertical.d.ts.map +1 -0
- package/dist/experimental/grids/vertical.js +73 -0
- package/dist/experimental/grids/vertical.js.map +1 -0
- package/dist/experimental/helmert-flat.d.ts +4 -0
- package/dist/experimental/helmert-flat.d.ts.map +1 -0
- package/dist/experimental/helmert-flat.js +53 -0
- package/dist/experimental/helmert-flat.js.map +1 -0
- package/dist/experimental/index.cjs +10062 -0
- package/dist/experimental/index.cjs.map +6 -0
- package/dist/experimental/index.d.ts +49 -0
- package/dist/experimental/index.d.ts.map +1 -0
- package/dist/experimental/index.js +48 -0
- package/dist/experimental/index.js.map +1 -0
- package/dist/experimental/kernel.d.ts +36 -0
- package/dist/experimental/kernel.d.ts.map +1 -0
- package/dist/experimental/kernel.js +80 -0
- package/dist/experimental/kernel.js.map +1 -0
- package/dist/experimental/kernels/aea.d.ts +25 -0
- package/dist/experimental/kernels/aea.d.ts.map +1 -0
- package/dist/experimental/kernels/aea.js +136 -0
- package/dist/experimental/kernels/aea.js.map +1 -0
- package/dist/experimental/kernels/aeqd.d.ts +10 -0
- package/dist/experimental/kernels/aeqd.d.ts.map +1 -0
- package/dist/experimental/kernels/aeqd.js +176 -0
- package/dist/experimental/kernels/aeqd.js.map +1 -0
- package/dist/experimental/kernels/bonne.d.ts +12 -0
- package/dist/experimental/kernels/bonne.d.ts.map +1 -0
- package/dist/experimental/kernels/bonne.js +128 -0
- package/dist/experimental/kernels/bonne.js.map +1 -0
- package/dist/experimental/kernels/cass.d.ts +10 -0
- package/dist/experimental/kernels/cass.d.ts.map +1 -0
- package/dist/experimental/kernels/cass.js +122 -0
- package/dist/experimental/kernels/cass.js.map +1 -0
- package/dist/experimental/kernels/cea.d.ts +6 -0
- package/dist/experimental/kernels/cea.d.ts.map +1 -0
- package/dist/experimental/kernels/cea.js +63 -0
- package/dist/experimental/kernels/cea.js.map +1 -0
- package/dist/experimental/kernels/eck6.d.ts +13 -0
- package/dist/experimental/kernels/eck6.d.ts.map +1 -0
- package/dist/experimental/kernels/eck6.js +23 -0
- package/dist/experimental/kernels/eck6.js.map +1 -0
- package/dist/experimental/kernels/eqdc.d.ts +19 -0
- package/dist/experimental/kernels/eqdc.d.ts.map +1 -0
- package/dist/experimental/kernels/eqdc.js +117 -0
- package/dist/experimental/kernels/eqdc.js.map +1 -0
- package/dist/experimental/kernels/eqearth.d.ts +10 -0
- package/dist/experimental/kernels/eqearth.d.ts.map +1 -0
- package/dist/experimental/kernels/eqearth.js +103 -0
- package/dist/experimental/kernels/eqearth.js.map +1 -0
- package/dist/experimental/kernels/equi.d.ts +9 -0
- package/dist/experimental/kernels/equi.d.ts.map +1 -0
- package/dist/experimental/kernels/equi.js +41 -0
- package/dist/experimental/kernels/equi.js.map +1 -0
- package/dist/experimental/kernels/etmerc.d.ts +13 -0
- package/dist/experimental/kernels/etmerc.d.ts.map +1 -0
- package/dist/experimental/kernels/etmerc.js +145 -0
- package/dist/experimental/kernels/etmerc.js.map +1 -0
- package/dist/experimental/kernels/gauss.d.ts +12 -0
- package/dist/experimental/kernels/gauss.d.ts.map +1 -0
- package/dist/experimental/kernels/gauss.js +64 -0
- package/dist/experimental/kernels/gauss.js.map +1 -0
- package/dist/experimental/kernels/geos.d.ts +17 -0
- package/dist/experimental/kernels/geos.d.ts.map +1 -0
- package/dist/experimental/kernels/geos.js +153 -0
- package/dist/experimental/kernels/geos.js.map +1 -0
- package/dist/experimental/kernels/gnom.d.ts +12 -0
- package/dist/experimental/kernels/gnom.d.ts.map +1 -0
- package/dist/experimental/kernels/gnom.js +95 -0
- package/dist/experimental/kernels/gnom.js.map +1 -0
- package/dist/experimental/kernels/gstmerc.d.ts +13 -0
- package/dist/experimental/kernels/gstmerc.d.ts.map +1 -0
- package/dist/experimental/kernels/gstmerc.js +57 -0
- package/dist/experimental/kernels/gstmerc.js.map +1 -0
- package/dist/experimental/kernels/krovak.d.ts +23 -0
- package/dist/experimental/kernels/krovak.d.ts.map +1 -0
- package/dist/experimental/kernels/krovak.js +128 -0
- package/dist/experimental/kernels/krovak.js.map +1 -0
- package/dist/experimental/kernels/laea.d.ts +23 -0
- package/dist/experimental/kernels/laea.d.ts.map +1 -0
- package/dist/experimental/kernels/laea.js +278 -0
- package/dist/experimental/kernels/laea.js.map +1 -0
- package/dist/experimental/kernels/lcc.d.ts +10 -0
- package/dist/experimental/kernels/lcc.d.ts.map +1 -0
- package/dist/experimental/kernels/lcc.js +131 -0
- package/dist/experimental/kernels/lcc.js.map +1 -0
- package/dist/experimental/kernels/mill.d.ts +6 -0
- package/dist/experimental/kernels/mill.d.ts.map +1 -0
- package/dist/experimental/kernels/mill.js +49 -0
- package/dist/experimental/kernels/mill.js.map +1 -0
- package/dist/experimental/kernels/moll.d.ts +6 -0
- package/dist/experimental/kernels/moll.d.ts.map +1 -0
- package/dist/experimental/kernels/moll.js +89 -0
- package/dist/experimental/kernels/moll.js.map +1 -0
- package/dist/experimental/kernels/nzmg.d.ts +28 -0
- package/dist/experimental/kernels/nzmg.d.ts.map +1 -0
- package/dist/experimental/kernels/nzmg.js +209 -0
- package/dist/experimental/kernels/nzmg.js.map +1 -0
- package/dist/experimental/kernels/omerc.d.ts +30 -0
- package/dist/experimental/kernels/omerc.d.ts.map +1 -0
- package/dist/experimental/kernels/omerc.js +260 -0
- package/dist/experimental/kernels/omerc.js.map +1 -0
- package/dist/experimental/kernels/ortho.d.ts +9 -0
- package/dist/experimental/kernels/ortho.d.ts.map +1 -0
- package/dist/experimental/kernels/ortho.js +91 -0
- package/dist/experimental/kernels/ortho.js.map +1 -0
- package/dist/experimental/kernels/poly.d.ts +13 -0
- package/dist/experimental/kernels/poly.d.ts.map +1 -0
- package/dist/experimental/kernels/poly.js +141 -0
- package/dist/experimental/kernels/poly.js.map +1 -0
- package/dist/experimental/kernels/qsc.d.ts +10 -0
- package/dist/experimental/kernels/qsc.d.ts.map +1 -0
- package/dist/experimental/kernels/qsc.js +379 -0
- package/dist/experimental/kernels/qsc.js.map +1 -0
- package/dist/experimental/kernels/robin.d.ts +6 -0
- package/dist/experimental/kernels/robin.d.ts.map +1 -0
- package/dist/experimental/kernels/robin.js +166 -0
- package/dist/experimental/kernels/robin.js.map +1 -0
- package/dist/experimental/kernels/sinu.d.ts +12 -0
- package/dist/experimental/kernels/sinu.d.ts.map +1 -0
- package/dist/experimental/kernels/sinu.js +104 -0
- package/dist/experimental/kernels/sinu.js.map +1 -0
- package/dist/experimental/kernels/somerc.d.ts +13 -0
- package/dist/experimental/kernels/somerc.d.ts.map +1 -0
- package/dist/experimental/kernels/somerc.js +81 -0
- package/dist/experimental/kernels/somerc.js.map +1 -0
- package/dist/experimental/kernels/stere.d.ts +15 -0
- package/dist/experimental/kernels/stere.d.ts.map +1 -0
- package/dist/experimental/kernels/stere.js +195 -0
- package/dist/experimental/kernels/stere.js.map +1 -0
- package/dist/experimental/kernels/sterea.d.ts +11 -0
- package/dist/experimental/kernels/sterea.d.ts.map +1 -0
- package/dist/experimental/kernels/sterea.js +65 -0
- package/dist/experimental/kernels/sterea.js.map +1 -0
- package/dist/experimental/kernels/tmerc.d.ts +9 -0
- package/dist/experimental/kernels/tmerc.d.ts.map +1 -0
- package/dist/experimental/kernels/tmerc.js +201 -0
- package/dist/experimental/kernels/tmerc.js.map +1 -0
- package/dist/experimental/kernels/tpers.d.ts +22 -0
- package/dist/experimental/kernels/tpers.d.ts.map +1 -0
- package/dist/experimental/kernels/tpers.js +156 -0
- package/dist/experimental/kernels/tpers.js.map +1 -0
- package/dist/experimental/kernels/vandg.d.ts +8 -0
- package/dist/experimental/kernels/vandg.d.ts.map +1 -0
- package/dist/experimental/kernels/vandg.js +132 -0
- package/dist/experimental/kernels/vandg.js.map +1 -0
- package/dist/experimental/kinematic-helmert-flat.d.ts +4 -0
- package/dist/experimental/kinematic-helmert-flat.d.ts.map +1 -0
- package/dist/experimental/kinematic-helmert-flat.js +60 -0
- package/dist/experimental/kinematic-helmert-flat.js.map +1 -0
- package/dist/experimental/kinematic-helmert.d.ts +11 -0
- package/dist/experimental/kinematic-helmert.d.ts.map +1 -0
- package/dist/experimental/kinematic-helmert.js +103 -0
- package/dist/experimental/kinematic-helmert.js.map +1 -0
- package/dist/experimental/lazy-projection.d.ts +11 -0
- package/dist/experimental/lazy-projection.d.ts.map +1 -0
- package/dist/experimental/lazy-projection.js +138 -0
- package/dist/experimental/lazy-projection.js.map +1 -0
- package/dist/experimental/lazy-projections/aea.cjs +79 -0
- package/dist/experimental/lazy-projections/aea.cjs.map +6 -0
- package/dist/experimental/lazy-projections/aea.d.ts +3 -0
- package/dist/experimental/lazy-projections/aea.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/aea.js +7 -0
- package/dist/experimental/lazy-projections/aea.js.map +1 -0
- package/dist/experimental/lazy-projections/aeqd.cjs +79 -0
- package/dist/experimental/lazy-projections/aeqd.cjs.map +6 -0
- package/dist/experimental/lazy-projections/aeqd.d.ts +3 -0
- package/dist/experimental/lazy-projections/aeqd.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/aeqd.js +8 -0
- package/dist/experimental/lazy-projections/aeqd.js.map +1 -0
- package/dist/experimental/lazy-projections/bonne.cjs +79 -0
- package/dist/experimental/lazy-projections/bonne.cjs.map +6 -0
- package/dist/experimental/lazy-projections/bonne.d.ts +3 -0
- package/dist/experimental/lazy-projections/bonne.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/bonne.js +7 -0
- package/dist/experimental/lazy-projections/bonne.js.map +1 -0
- package/dist/experimental/lazy-projections/cass.cjs +79 -0
- package/dist/experimental/lazy-projections/cass.cjs.map +6 -0
- package/dist/experimental/lazy-projections/cass.d.ts +3 -0
- package/dist/experimental/lazy-projections/cass.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/cass.js +7 -0
- package/dist/experimental/lazy-projections/cass.js.map +1 -0
- package/dist/experimental/lazy-projections/cea.cjs +79 -0
- package/dist/experimental/lazy-projections/cea.cjs.map +6 -0
- package/dist/experimental/lazy-projections/cea.d.ts +3 -0
- package/dist/experimental/lazy-projections/cea.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/cea.js +8 -0
- package/dist/experimental/lazy-projections/cea.js.map +1 -0
- package/dist/experimental/lazy-projections/eck6.cjs +79 -0
- package/dist/experimental/lazy-projections/eck6.cjs.map +6 -0
- package/dist/experimental/lazy-projections/eck6.d.ts +3 -0
- package/dist/experimental/lazy-projections/eck6.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/eck6.js +7 -0
- package/dist/experimental/lazy-projections/eck6.js.map +1 -0
- package/dist/experimental/lazy-projections/eqc.cjs +82 -0
- package/dist/experimental/lazy-projections/eqc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/eqc.d.ts +3 -0
- package/dist/experimental/lazy-projections/eqc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/eqc.js +11 -0
- package/dist/experimental/lazy-projections/eqc.js.map +1 -0
- package/dist/experimental/lazy-projections/eqdc.cjs +79 -0
- package/dist/experimental/lazy-projections/eqdc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/eqdc.d.ts +3 -0
- package/dist/experimental/lazy-projections/eqdc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/eqdc.js +8 -0
- package/dist/experimental/lazy-projections/eqdc.js.map +1 -0
- package/dist/experimental/lazy-projections/eqearth.cjs +79 -0
- package/dist/experimental/lazy-projections/eqearth.cjs.map +6 -0
- package/dist/experimental/lazy-projections/eqearth.d.ts +3 -0
- package/dist/experimental/lazy-projections/eqearth.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/eqearth.js +7 -0
- package/dist/experimental/lazy-projections/eqearth.js.map +1 -0
- package/dist/experimental/lazy-projections/equi.cjs +79 -0
- package/dist/experimental/lazy-projections/equi.cjs.map +6 -0
- package/dist/experimental/lazy-projections/equi.d.ts +3 -0
- package/dist/experimental/lazy-projections/equi.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/equi.js +7 -0
- package/dist/experimental/lazy-projections/equi.js.map +1 -0
- package/dist/experimental/lazy-projections/etmerc.cjs +79 -0
- package/dist/experimental/lazy-projections/etmerc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/etmerc.d.ts +3 -0
- package/dist/experimental/lazy-projections/etmerc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/etmerc.js +8 -0
- package/dist/experimental/lazy-projections/etmerc.js.map +1 -0
- package/dist/experimental/lazy-projections/geocent.cjs +79 -0
- package/dist/experimental/lazy-projections/geocent.cjs.map +6 -0
- package/dist/experimental/lazy-projections/geocent.d.ts +3 -0
- package/dist/experimental/lazy-projections/geocent.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/geocent.js +7 -0
- package/dist/experimental/lazy-projections/geocent.js.map +1 -0
- package/dist/experimental/lazy-projections/geos.cjs +79 -0
- package/dist/experimental/lazy-projections/geos.cjs.map +6 -0
- package/dist/experimental/lazy-projections/geos.d.ts +3 -0
- package/dist/experimental/lazy-projections/geos.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/geos.js +7 -0
- package/dist/experimental/lazy-projections/geos.js.map +1 -0
- package/dist/experimental/lazy-projections/gnom.cjs +79 -0
- package/dist/experimental/lazy-projections/gnom.cjs.map +6 -0
- package/dist/experimental/lazy-projections/gnom.d.ts +3 -0
- package/dist/experimental/lazy-projections/gnom.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/gnom.js +7 -0
- package/dist/experimental/lazy-projections/gnom.js.map +1 -0
- package/dist/experimental/lazy-projections/gstmerc.cjs +79 -0
- package/dist/experimental/lazy-projections/gstmerc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/gstmerc.d.ts +3 -0
- package/dist/experimental/lazy-projections/gstmerc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/gstmerc.js +8 -0
- package/dist/experimental/lazy-projections/gstmerc.js.map +1 -0
- package/dist/experimental/lazy-projections/index.cjs +3177 -0
- package/dist/experimental/lazy-projections/index.cjs.map +6 -0
- package/dist/experimental/lazy-projections/index.d.ts +39 -0
- package/dist/experimental/lazy-projections/index.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/index.js +41 -0
- package/dist/experimental/lazy-projections/index.js.map +1 -0
- package/dist/experimental/lazy-projections/krovak.cjs +87 -0
- package/dist/experimental/lazy-projections/krovak.cjs.map +6 -0
- package/dist/experimental/lazy-projections/krovak.d.ts +3 -0
- package/dist/experimental/lazy-projections/krovak.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/krovak.js +15 -0
- package/dist/experimental/lazy-projections/krovak.js.map +1 -0
- package/dist/experimental/lazy-projections/laea.cjs +79 -0
- package/dist/experimental/lazy-projections/laea.cjs.map +6 -0
- package/dist/experimental/lazy-projections/laea.d.ts +3 -0
- package/dist/experimental/lazy-projections/laea.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/laea.js +8 -0
- package/dist/experimental/lazy-projections/laea.js.map +1 -0
- package/dist/experimental/lazy-projections/lcc.cjs +89 -0
- package/dist/experimental/lazy-projections/lcc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/lcc.d.ts +3 -0
- package/dist/experimental/lazy-projections/lcc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/lcc.js +18 -0
- package/dist/experimental/lazy-projections/lcc.js.map +1 -0
- package/dist/experimental/lazy-projections/merc.cjs +88 -0
- package/dist/experimental/lazy-projections/merc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/merc.d.ts +3 -0
- package/dist/experimental/lazy-projections/merc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/merc.js +16 -0
- package/dist/experimental/lazy-projections/merc.js.map +1 -0
- package/dist/experimental/lazy-projections/mill.cjs +79 -0
- package/dist/experimental/lazy-projections/mill.cjs.map +6 -0
- package/dist/experimental/lazy-projections/mill.d.ts +3 -0
- package/dist/experimental/lazy-projections/mill.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/mill.js +8 -0
- package/dist/experimental/lazy-projections/mill.js.map +1 -0
- package/dist/experimental/lazy-projections/moll.cjs +79 -0
- package/dist/experimental/lazy-projections/moll.cjs.map +6 -0
- package/dist/experimental/lazy-projections/moll.d.ts +3 -0
- package/dist/experimental/lazy-projections/moll.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/moll.js +7 -0
- package/dist/experimental/lazy-projections/moll.js.map +1 -0
- package/dist/experimental/lazy-projections/nzmg.cjs +79 -0
- package/dist/experimental/lazy-projections/nzmg.cjs.map +6 -0
- package/dist/experimental/lazy-projections/nzmg.d.ts +3 -0
- package/dist/experimental/lazy-projections/nzmg.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/nzmg.js +8 -0
- package/dist/experimental/lazy-projections/nzmg.js.map +1 -0
- package/dist/experimental/lazy-projections/ob_tran.cjs +90 -0
- package/dist/experimental/lazy-projections/ob_tran.cjs.map +6 -0
- package/dist/experimental/lazy-projections/ob_tran.d.ts +5 -0
- package/dist/experimental/lazy-projections/ob_tran.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/ob_tran.js +18 -0
- package/dist/experimental/lazy-projections/ob_tran.js.map +1 -0
- package/dist/experimental/lazy-projections/omerc.cjs +91 -0
- package/dist/experimental/lazy-projections/omerc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/omerc.d.ts +3 -0
- package/dist/experimental/lazy-projections/omerc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/omerc.js +19 -0
- package/dist/experimental/lazy-projections/omerc.js.map +1 -0
- package/dist/experimental/lazy-projections/ortho.cjs +79 -0
- package/dist/experimental/lazy-projections/ortho.cjs.map +6 -0
- package/dist/experimental/lazy-projections/ortho.d.ts +3 -0
- package/dist/experimental/lazy-projections/ortho.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/ortho.js +7 -0
- package/dist/experimental/lazy-projections/ortho.js.map +1 -0
- package/dist/experimental/lazy-projections/poly.cjs +79 -0
- package/dist/experimental/lazy-projections/poly.cjs.map +6 -0
- package/dist/experimental/lazy-projections/poly.d.ts +3 -0
- package/dist/experimental/lazy-projections/poly.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/poly.js +7 -0
- package/dist/experimental/lazy-projections/poly.js.map +1 -0
- package/dist/experimental/lazy-projections/qsc.cjs +82 -0
- package/dist/experimental/lazy-projections/qsc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/qsc.d.ts +3 -0
- package/dist/experimental/lazy-projections/qsc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/qsc.js +11 -0
- package/dist/experimental/lazy-projections/qsc.js.map +1 -0
- package/dist/experimental/lazy-projections/robin.cjs +79 -0
- package/dist/experimental/lazy-projections/robin.cjs.map +6 -0
- package/dist/experimental/lazy-projections/robin.d.ts +3 -0
- package/dist/experimental/lazy-projections/robin.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/robin.js +7 -0
- package/dist/experimental/lazy-projections/robin.js.map +1 -0
- package/dist/experimental/lazy-projections/sinu.cjs +79 -0
- package/dist/experimental/lazy-projections/sinu.cjs.map +6 -0
- package/dist/experimental/lazy-projections/sinu.d.ts +3 -0
- package/dist/experimental/lazy-projections/sinu.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/sinu.js +7 -0
- package/dist/experimental/lazy-projections/sinu.js.map +1 -0
- package/dist/experimental/lazy-projections/somerc.cjs +79 -0
- package/dist/experimental/lazy-projections/somerc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/somerc.d.ts +3 -0
- package/dist/experimental/lazy-projections/somerc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/somerc.js +8 -0
- package/dist/experimental/lazy-projections/somerc.js.map +1 -0
- package/dist/experimental/lazy-projections/stere.cjs +87 -0
- package/dist/experimental/lazy-projections/stere.cjs.map +6 -0
- package/dist/experimental/lazy-projections/stere.d.ts +3 -0
- package/dist/experimental/lazy-projections/stere.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/stere.js +15 -0
- package/dist/experimental/lazy-projections/stere.js.map +1 -0
- package/dist/experimental/lazy-projections/sterea.cjs +87 -0
- package/dist/experimental/lazy-projections/sterea.cjs.map +6 -0
- package/dist/experimental/lazy-projections/sterea.d.ts +3 -0
- package/dist/experimental/lazy-projections/sterea.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/sterea.js +16 -0
- package/dist/experimental/lazy-projections/sterea.js.map +1 -0
- package/dist/experimental/lazy-projections/tmerc.cjs +89 -0
- package/dist/experimental/lazy-projections/tmerc.cjs.map +6 -0
- package/dist/experimental/lazy-projections/tmerc.d.ts +3 -0
- package/dist/experimental/lazy-projections/tmerc.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/tmerc.js +18 -0
- package/dist/experimental/lazy-projections/tmerc.js.map +1 -0
- package/dist/experimental/lazy-projections/tpers.cjs +79 -0
- package/dist/experimental/lazy-projections/tpers.cjs.map +6 -0
- package/dist/experimental/lazy-projections/tpers.d.ts +3 -0
- package/dist/experimental/lazy-projections/tpers.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/tpers.js +8 -0
- package/dist/experimental/lazy-projections/tpers.js.map +1 -0
- package/dist/experimental/lazy-projections/utm.cjs +79 -0
- package/dist/experimental/lazy-projections/utm.cjs.map +6 -0
- package/dist/experimental/lazy-projections/utm.d.ts +3 -0
- package/dist/experimental/lazy-projections/utm.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/utm.js +8 -0
- package/dist/experimental/lazy-projections/utm.js.map +1 -0
- package/dist/experimental/lazy-projections/vandg.cjs +79 -0
- package/dist/experimental/lazy-projections/vandg.cjs.map +6 -0
- package/dist/experimental/lazy-projections/vandg.d.ts +3 -0
- package/dist/experimental/lazy-projections/vandg.d.ts.map +1 -0
- package/dist/experimental/lazy-projections/vandg.js +7 -0
- package/dist/experimental/lazy-projections/vandg.js.map +1 -0
- package/dist/experimental/mutable-projection.d.ts +6 -0
- package/dist/experimental/mutable-projection.d.ts.map +1 -0
- package/dist/experimental/mutable-projection.js +53 -0
- package/dist/experimental/mutable-projection.js.map +1 -0
- package/dist/experimental/numeric-flat.d.ts +8 -0
- package/dist/experimental/numeric-flat.d.ts.map +1 -0
- package/dist/experimental/numeric-flat.js +54 -0
- package/dist/experimental/numeric-flat.js.map +1 -0
- package/dist/experimental/parameters.d.ts +7 -0
- package/dist/experimental/parameters.d.ts.map +1 -0
- package/dist/experimental/parameters.js +30 -0
- package/dist/experimental/parameters.js.map +1 -0
- package/dist/experimental/projection-descriptor.d.ts +13 -0
- package/dist/experimental/projection-descriptor.d.ts.map +1 -0
- package/dist/experimental/projection-descriptor.js +52 -0
- package/dist/experimental/projection-descriptor.js.map +1 -0
- package/dist/experimental/projection-pipeline.d.ts +142 -0
- package/dist/experimental/projection-pipeline.d.ts.map +1 -0
- package/dist/experimental/projection-pipeline.js +746 -0
- package/dist/experimental/projection-pipeline.js.map +1 -0
- package/dist/experimental/projection-scratch.d.ts +9 -0
- package/dist/experimental/projection-scratch.d.ts.map +1 -0
- package/dist/experimental/projection-scratch.js +18 -0
- package/dist/experimental/projection-scratch.js.map +1 -0
- package/dist/experimental/projections/aea.d.ts +3 -0
- package/dist/experimental/projections/aea.d.ts.map +1 -0
- package/dist/experimental/projections/aea.js +17 -0
- package/dist/experimental/projections/aea.js.map +1 -0
- package/dist/experimental/projections/aeqd.d.ts +3 -0
- package/dist/experimental/projections/aeqd.d.ts.map +1 -0
- package/dist/experimental/projections/aeqd.js +15 -0
- package/dist/experimental/projections/aeqd.js.map +1 -0
- package/dist/experimental/projections/bonne.d.ts +3 -0
- package/dist/experimental/projections/bonne.d.ts.map +1 -0
- package/dist/experimental/projections/bonne.js +16 -0
- package/dist/experimental/projections/bonne.js.map +1 -0
- package/dist/experimental/projections/cass.d.ts +3 -0
- package/dist/experimental/projections/cass.d.ts.map +1 -0
- package/dist/experimental/projections/cass.js +13 -0
- package/dist/experimental/projections/cass.js.map +1 -0
- package/dist/experimental/projections/cea.d.ts +3 -0
- package/dist/experimental/projections/cea.d.ts.map +1 -0
- package/dist/experimental/projections/cea.js +15 -0
- package/dist/experimental/projections/cea.js.map +1 -0
- package/dist/experimental/projections/eck6.d.ts +3 -0
- package/dist/experimental/projections/eck6.d.ts.map +1 -0
- package/dist/experimental/projections/eck6.js +13 -0
- package/dist/experimental/projections/eck6.js.map +1 -0
- package/dist/experimental/projections/eqdc.d.ts +3 -0
- package/dist/experimental/projections/eqdc.d.ts.map +1 -0
- package/dist/experimental/projections/eqdc.js +17 -0
- package/dist/experimental/projections/eqdc.js.map +1 -0
- package/dist/experimental/projections/eqearth.d.ts +3 -0
- package/dist/experimental/projections/eqearth.d.ts.map +1 -0
- package/dist/experimental/projections/eqearth.js +13 -0
- package/dist/experimental/projections/eqearth.js.map +1 -0
- package/dist/experimental/projections/equi.d.ts +3 -0
- package/dist/experimental/projections/equi.d.ts.map +1 -0
- package/dist/experimental/projections/equi.js +15 -0
- package/dist/experimental/projections/equi.js.map +1 -0
- package/dist/experimental/projections/equidistant-cylindrical.d.ts +4 -0
- package/dist/experimental/projections/equidistant-cylindrical.d.ts.map +1 -0
- package/dist/experimental/projections/equidistant-cylindrical.js +30 -0
- package/dist/experimental/projections/equidistant-cylindrical.js.map +1 -0
- package/dist/experimental/projections/geocentric.d.ts +3 -0
- package/dist/experimental/projections/geocentric.d.ts.map +1 -0
- package/dist/experimental/projections/geocentric.js +26 -0
- package/dist/experimental/projections/geocentric.js.map +1 -0
- package/dist/experimental/projections/geos.d.ts +3 -0
- package/dist/experimental/projections/geos.d.ts.map +1 -0
- package/dist/experimental/projections/geos.js +20 -0
- package/dist/experimental/projections/geos.js.map +1 -0
- package/dist/experimental/projections/gnom.d.ts +3 -0
- package/dist/experimental/projections/gnom.d.ts.map +1 -0
- package/dist/experimental/projections/gnom.js +13 -0
- package/dist/experimental/projections/gnom.js.map +1 -0
- package/dist/experimental/projections/gstmerc.d.ts +3 -0
- package/dist/experimental/projections/gstmerc.d.ts.map +1 -0
- package/dist/experimental/projections/gstmerc.js +13 -0
- package/dist/experimental/projections/gstmerc.js.map +1 -0
- package/dist/experimental/projections/krovak.d.ts +3 -0
- package/dist/experimental/projections/krovak.d.ts.map +1 -0
- package/dist/experimental/projections/krovak.js +32 -0
- package/dist/experimental/projections/krovak.js.map +1 -0
- package/dist/experimental/projections/laea.d.ts +3 -0
- package/dist/experimental/projections/laea.d.ts.map +1 -0
- package/dist/experimental/projections/laea.js +15 -0
- package/dist/experimental/projections/laea.js.map +1 -0
- package/dist/experimental/projections/lcc.d.ts +3 -0
- package/dist/experimental/projections/lcc.d.ts.map +1 -0
- package/dist/experimental/projections/lcc.js +32 -0
- package/dist/experimental/projections/lcc.js.map +1 -0
- package/dist/experimental/projections/mercator.d.ts +4 -0
- package/dist/experimental/projections/mercator.d.ts.map +1 -0
- package/dist/experimental/projections/mercator.js +71 -0
- package/dist/experimental/projections/mercator.js.map +1 -0
- package/dist/experimental/projections/mill.d.ts +3 -0
- package/dist/experimental/projections/mill.d.ts.map +1 -0
- package/dist/experimental/projections/mill.js +13 -0
- package/dist/experimental/projections/mill.js.map +1 -0
- package/dist/experimental/projections/moll.d.ts +3 -0
- package/dist/experimental/projections/moll.d.ts.map +1 -0
- package/dist/experimental/projections/moll.js +13 -0
- package/dist/experimental/projections/moll.js.map +1 -0
- package/dist/experimental/projections/nzmg.d.ts +3 -0
- package/dist/experimental/projections/nzmg.d.ts.map +1 -0
- package/dist/experimental/projections/nzmg.js +20 -0
- package/dist/experimental/projections/nzmg.js.map +1 -0
- package/dist/experimental/projections/ob-tran.d.ts +4 -0
- package/dist/experimental/projections/ob-tran.d.ts.map +1 -0
- package/dist/experimental/projections/ob-tran.js +119 -0
- package/dist/experimental/projections/ob-tran.js.map +1 -0
- package/dist/experimental/projections/omerc.d.ts +3 -0
- package/dist/experimental/projections/omerc.d.ts.map +1 -0
- package/dist/experimental/projections/omerc.js +60 -0
- package/dist/experimental/projections/omerc.js.map +1 -0
- package/dist/experimental/projections/ortho.d.ts +3 -0
- package/dist/experimental/projections/ortho.d.ts.map +1 -0
- package/dist/experimental/projections/ortho.js +13 -0
- package/dist/experimental/projections/ortho.js.map +1 -0
- package/dist/experimental/projections/poly.d.ts +3 -0
- package/dist/experimental/projections/poly.d.ts.map +1 -0
- package/dist/experimental/projections/poly.js +13 -0
- package/dist/experimental/projections/poly.js.map +1 -0
- package/dist/experimental/projections/qsc.d.ts +3 -0
- package/dist/experimental/projections/qsc.d.ts.map +1 -0
- package/dist/experimental/projections/qsc.js +13 -0
- package/dist/experimental/projections/qsc.js.map +1 -0
- package/dist/experimental/projections/robin.d.ts +3 -0
- package/dist/experimental/projections/robin.d.ts.map +1 -0
- package/dist/experimental/projections/robin.js +13 -0
- package/dist/experimental/projections/robin.js.map +1 -0
- package/dist/experimental/projections/sinu.d.ts +3 -0
- package/dist/experimental/projections/sinu.d.ts.map +1 -0
- package/dist/experimental/projections/sinu.js +13 -0
- package/dist/experimental/projections/sinu.js.map +1 -0
- package/dist/experimental/projections/somerc.d.ts +3 -0
- package/dist/experimental/projections/somerc.d.ts.map +1 -0
- package/dist/experimental/projections/somerc.js +13 -0
- package/dist/experimental/projections/somerc.js.map +1 -0
- package/dist/experimental/projections/stere.d.ts +3 -0
- package/dist/experimental/projections/stere.d.ts.map +1 -0
- package/dist/experimental/projections/stere.js +20 -0
- package/dist/experimental/projections/stere.js.map +1 -0
- package/dist/experimental/projections/sterea.d.ts +3 -0
- package/dist/experimental/projections/sterea.d.ts.map +1 -0
- package/dist/experimental/projections/sterea.js +22 -0
- package/dist/experimental/projections/sterea.js.map +1 -0
- package/dist/experimental/projections/tpers.d.ts +3 -0
- package/dist/experimental/projections/tpers.d.ts.map +1 -0
- package/dist/experimental/projections/tpers.js +19 -0
- package/dist/experimental/projections/tpers.js.map +1 -0
- package/dist/experimental/projections/transverse-mercator.d.ts +6 -0
- package/dist/experimental/projections/transverse-mercator.d.ts.map +1 -0
- package/dist/experimental/projections/transverse-mercator.js +39 -0
- package/dist/experimental/projections/transverse-mercator.js.map +1 -0
- package/dist/experimental/projections/utm.d.ts +3 -0
- package/dist/experimental/projections/utm.d.ts.map +1 -0
- package/dist/experimental/projections/utm.js +31 -0
- package/dist/experimental/projections/utm.js.map +1 -0
- package/dist/experimental/projections/vandg.d.ts +3 -0
- package/dist/experimental/projections/vandg.d.ts.map +1 -0
- package/dist/experimental/projections/vandg.js +13 -0
- package/dist/experimental/projections/vandg.js.map +1 -0
- package/dist/experimental/scalar-output.d.ts +8 -0
- package/dist/experimental/scalar-output.d.ts.map +1 -0
- package/dist/experimental/scalar-output.js +46 -0
- package/dist/experimental/scalar-output.js.map +1 -0
- package/dist/experimental/types.d.ts +54 -0
- package/dist/experimental/types.d.ts.map +1 -0
- package/dist/experimental/types.js +5 -0
- package/dist/experimental/types.js.map +1 -0
- package/dist/experimental/typescript-projection.d.ts +67 -0
- package/dist/experimental/typescript-projection.d.ts.map +1 -0
- package/dist/experimental/typescript-projection.js +429 -0
- package/dist/experimental/typescript-projection.js.map +1 -0
- package/dist/experimental/vertical-datum.d.ts +4 -0
- package/dist/experimental/vertical-datum.d.ts.map +1 -0
- package/dist/experimental/vertical-datum.js +43 -0
- package/dist/experimental/vertical-datum.js.map +1 -0
- package/dist/grids/velocity.cjs +92 -0
- package/dist/grids/velocity.cjs.map +6 -0
- package/dist/grids/velocity.d.ts +3 -0
- package/dist/grids/velocity.d.ts.map +1 -0
- package/dist/grids/velocity.js +5 -0
- package/dist/grids/velocity.js.map +1 -0
- package/dist/index.cjs +10158 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/projection.d.ts +24 -0
- package/dist/lib/projection.d.ts.map +1 -0
- package/dist/lib/projection.js +107 -0
- package/dist/lib/projection.js.map +1 -0
- package/dist/operations.cjs +255 -0
- package/dist/operations.cjs.map +6 -0
- package/dist/operations.d.ts +67 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +272 -0
- package/dist/operations.js.map +1 -0
- package/dist/pipeline.cjs +3347 -0
- package/dist/pipeline.cjs.map +6 -0
- package/dist/pipeline.d.ts +2 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +5 -0
- package/dist/pipeline.js.map +1 -0
- package/package.json +970 -3
- package/src/deformation.ts +5 -0
- package/src/experimental/catalogue-kernel.ts +54 -0
- package/src/experimental/common/adjust_lat.ts +11 -0
- package/src/experimental/common/adjust_lon.ts +14 -0
- package/src/experimental/common/asinhy.ts +14 -0
- package/src/experimental/common/asinz.ts +11 -0
- package/src/experimental/common/authlat.ts +9 -0
- package/src/experimental/common/authset.ts +25 -0
- package/src/experimental/common/clens.ts +20 -0
- package/src/experimental/common/clens_cmplx.ts +43 -0
- package/src/experimental/common/constants.ts +15 -0
- package/src/experimental/common/cosh.ts +10 -0
- package/src/experimental/common/e0fn.ts +8 -0
- package/src/experimental/common/e1fn.ts +8 -0
- package/src/experimental/common/e2fn.ts +8 -0
- package/src/experimental/common/e3fn.ts +8 -0
- package/src/experimental/common/fL.ts +10 -0
- package/src/experimental/common/gN.ts +9 -0
- package/src/experimental/common/gatg.ts +20 -0
- package/src/experimental/common/hypot.ts +13 -0
- package/src/experimental/common/imlfn.ts +23 -0
- package/src/experimental/common/invlatiso.ts +20 -0
- package/src/experimental/common/iqsfnz.ts +45 -0
- package/src/experimental/common/latiso.ts +21 -0
- package/src/experimental/common/log1py.ts +11 -0
- package/src/experimental/common/mlfn.ts +8 -0
- package/src/experimental/common/msfnz.ts +9 -0
- package/src/experimental/common/phi2z.ts +22 -0
- package/src/experimental/common/pj_enfn.ts +29 -0
- package/src/experimental/common/pj_inv_mlfn.ts +28 -0
- package/src/experimental/common/pj_mlfn.ts +10 -0
- package/src/experimental/common/qsfnz.ts +17 -0
- package/src/experimental/common/sign.ts +8 -0
- package/src/experimental/common/sinh.ts +10 -0
- package/src/experimental/common/srat.ts +8 -0
- package/src/experimental/common/tsfnz.ts +13 -0
- package/src/experimental/common/vincenty.ts +180 -0
- package/src/experimental/core.ts +48 -0
- package/src/experimental/crs/datum-table.ts +1370 -0
- package/src/experimental/crs/ellipsoid-table.ts +230 -0
- package/src/experimental/crs/normalize.ts +303 -0
- package/src/experimental/crs/primemeridian-table.ts +22 -0
- package/src/experimental/crs/projjson.ts +12 -0
- package/src/experimental/crs/spatial-reference.ts +115 -0
- package/src/experimental/crs/structured.ts +521 -0
- package/src/experimental/crs/types.ts +80 -0
- package/src/experimental/crs/units-table.ts +27 -0
- package/src/experimental/crs/wkt.ts +192 -0
- package/src/experimental/datum.ts +185 -0
- package/src/experimental/deformation.ts +134 -0
- package/src/experimental/entries/projections/aea.ts +5 -0
- package/src/experimental/entries/projections/aeqd.ts +5 -0
- package/src/experimental/entries/projections/bonne.ts +5 -0
- package/src/experimental/entries/projections/cass.ts +5 -0
- package/src/experimental/entries/projections/cea.ts +5 -0
- package/src/experimental/entries/projections/eck6.ts +5 -0
- package/src/experimental/entries/projections/eqc.ts +5 -0
- package/src/experimental/entries/projections/eqdc.ts +5 -0
- package/src/experimental/entries/projections/eqearth.ts +5 -0
- package/src/experimental/entries/projections/equi.ts +5 -0
- package/src/experimental/entries/projections/etmerc.ts +5 -0
- package/src/experimental/entries/projections/geocent.ts +5 -0
- package/src/experimental/entries/projections/geos.ts +5 -0
- package/src/experimental/entries/projections/gnom.ts +5 -0
- package/src/experimental/entries/projections/gstmerc.ts +5 -0
- package/src/experimental/entries/projections/krovak.ts +5 -0
- package/src/experimental/entries/projections/laea.ts +5 -0
- package/src/experimental/entries/projections/lcc.ts +5 -0
- package/src/experimental/entries/projections/merc.ts +5 -0
- package/src/experimental/entries/projections/mill.ts +5 -0
- package/src/experimental/entries/projections/moll.ts +5 -0
- package/src/experimental/entries/projections/nzmg.ts +5 -0
- package/src/experimental/entries/projections/ob_tran.ts +5 -0
- package/src/experimental/entries/projections/omerc.ts +5 -0
- package/src/experimental/entries/projections/ortho.ts +5 -0
- package/src/experimental/entries/projections/poly.ts +5 -0
- package/src/experimental/entries/projections/qsc.ts +5 -0
- package/src/experimental/entries/projections/robin.ts +5 -0
- package/src/experimental/entries/projections/sinu.ts +5 -0
- package/src/experimental/entries/projections/somerc.ts +5 -0
- package/src/experimental/entries/projections/stere.ts +5 -0
- package/src/experimental/entries/projections/sterea.ts +5 -0
- package/src/experimental/entries/projections/tmerc.ts +5 -0
- package/src/experimental/entries/projections/tpers.ts +5 -0
- package/src/experimental/entries/projections/utm.ts +5 -0
- package/src/experimental/entries/projections/vandg.ts +5 -0
- package/src/experimental/exact-helmert.ts +58 -0
- package/src/experimental/flat-projection.ts +70 -0
- package/src/experimental/grids/geotiff.ts +88 -0
- package/src/experimental/grids/grid.ts +141 -0
- package/src/experimental/grids/gtx.ts +31 -0
- package/src/experimental/grids/ntv2.ts +71 -0
- package/src/experimental/grids/scalar-geotiff.ts +231 -0
- package/src/experimental/grids/types.ts +35 -0
- package/src/experimental/grids/velocity-geotiff.ts +82 -0
- package/src/experimental/grids/velocity.ts +58 -0
- package/src/experimental/grids/vertical-geotiff.ts +28 -0
- package/src/experimental/grids/vertical.ts +99 -0
- package/src/experimental/helmert-flat.ts +76 -0
- package/src/experimental/index.ts +59 -0
- package/src/experimental/kernel.ts +139 -0
- package/src/experimental/kernels/aea.ts +170 -0
- package/src/experimental/kernels/aeqd.ts +182 -0
- package/src/experimental/kernels/bonne.ts +141 -0
- package/src/experimental/kernels/cass.ts +140 -0
- package/src/experimental/kernels/cea.ts +71 -0
- package/src/experimental/kernels/eck6.ts +36 -0
- package/src/experimental/kernels/eqdc.ts +137 -0
- package/src/experimental/kernels/eqearth.ts +136 -0
- package/src/experimental/kernels/equi.ts +53 -0
- package/src/experimental/kernels/etmerc.ts +190 -0
- package/src/experimental/kernels/gauss.ts +79 -0
- package/src/experimental/kernels/geos.ts +183 -0
- package/src/experimental/kernels/gnom.ts +113 -0
- package/src/experimental/kernels/gstmerc.ts +74 -0
- package/src/experimental/kernels/krovak.ts +166 -0
- package/src/experimental/kernels/laea.ts +297 -0
- package/src/experimental/kernels/lcc.ts +147 -0
- package/src/experimental/kernels/mill.ts +60 -0
- package/src/experimental/kernels/moll.ts +105 -0
- package/src/experimental/kernels/nzmg.ts +249 -0
- package/src/experimental/kernels/omerc.ts +343 -0
- package/src/experimental/kernels/ortho.ts +106 -0
- package/src/experimental/kernels/poly.ts +156 -0
- package/src/experimental/kernels/qsc.ts +369 -0
- package/src/experimental/kernels/robin.ts +189 -0
- package/src/experimental/kernels/sinu.ts +116 -0
- package/src/experimental/kernels/somerc.ts +112 -0
- package/src/experimental/kernels/stere.ts +221 -0
- package/src/experimental/kernels/sterea.ts +80 -0
- package/src/experimental/kernels/tmerc.ts +227 -0
- package/src/experimental/kernels/tpers.ts +187 -0
- package/src/experimental/kernels/vandg.ts +147 -0
- package/src/experimental/kinematic-helmert-flat.ts +85 -0
- package/src/experimental/kinematic-helmert.ts +132 -0
- package/src/experimental/lazy-projection.ts +146 -0
- package/src/experimental/lazy-projections/aea.ts +10 -0
- package/src/experimental/lazy-projections/aeqd.ts +11 -0
- package/src/experimental/lazy-projections/bonne.ts +10 -0
- package/src/experimental/lazy-projections/cass.ts +10 -0
- package/src/experimental/lazy-projections/cea.ts +11 -0
- package/src/experimental/lazy-projections/eck6.ts +10 -0
- package/src/experimental/lazy-projections/eqc.ts +14 -0
- package/src/experimental/lazy-projections/eqdc.ts +11 -0
- package/src/experimental/lazy-projections/eqearth.ts +10 -0
- package/src/experimental/lazy-projections/equi.ts +10 -0
- package/src/experimental/lazy-projections/etmerc.ts +11 -0
- package/src/experimental/lazy-projections/geocent.ts +10 -0
- package/src/experimental/lazy-projections/geos.ts +10 -0
- package/src/experimental/lazy-projections/gnom.ts +10 -0
- package/src/experimental/lazy-projections/gstmerc.ts +12 -0
- package/src/experimental/lazy-projections/index.ts +42 -0
- package/src/experimental/lazy-projections/krovak.ts +18 -0
- package/src/experimental/lazy-projections/laea.ts +11 -0
- package/src/experimental/lazy-projections/lcc.ts +21 -0
- package/src/experimental/lazy-projections/merc.ts +19 -0
- package/src/experimental/lazy-projections/mill.ts +11 -0
- package/src/experimental/lazy-projections/moll.ts +10 -0
- package/src/experimental/lazy-projections/nzmg.ts +11 -0
- package/src/experimental/lazy-projections/ob_tran.ts +25 -0
- package/src/experimental/lazy-projections/omerc.ts +22 -0
- package/src/experimental/lazy-projections/ortho.ts +10 -0
- package/src/experimental/lazy-projections/poly.ts +10 -0
- package/src/experimental/lazy-projections/qsc.ts +14 -0
- package/src/experimental/lazy-projections/robin.ts +10 -0
- package/src/experimental/lazy-projections/sinu.ts +10 -0
- package/src/experimental/lazy-projections/somerc.ts +11 -0
- package/src/experimental/lazy-projections/stere.ts +18 -0
- package/src/experimental/lazy-projections/sterea.ts +19 -0
- package/src/experimental/lazy-projections/tmerc.ts +21 -0
- package/src/experimental/lazy-projections/tpers.ts +11 -0
- package/src/experimental/lazy-projections/utm.ts +11 -0
- package/src/experimental/lazy-projections/vandg.ts +10 -0
- package/src/experimental/mutable-projection.ts +63 -0
- package/src/experimental/numeric-flat.ts +73 -0
- package/src/experimental/parameters.ts +35 -0
- package/src/experimental/projection-descriptor.ts +79 -0
- package/src/experimental/projection-pipeline.ts +1053 -0
- package/src/experimental/projection-scratch.ts +19 -0
- package/src/experimental/projections/aea.ts +19 -0
- package/src/experimental/projections/aeqd.ts +18 -0
- package/src/experimental/projections/bonne.ts +23 -0
- package/src/experimental/projections/cass.ts +19 -0
- package/src/experimental/projections/cea.ts +20 -0
- package/src/experimental/projections/eck6.ts +19 -0
- package/src/experimental/projections/eqdc.ts +19 -0
- package/src/experimental/projections/eqearth.ts +19 -0
- package/src/experimental/projections/equi.ts +20 -0
- package/src/experimental/projections/equidistant-cylindrical.ts +35 -0
- package/src/experimental/projections/geocentric.ts +34 -0
- package/src/experimental/projections/geos.ts +31 -0
- package/src/experimental/projections/gnom.ts +19 -0
- package/src/experimental/projections/gstmerc.ts +19 -0
- package/src/experimental/projections/krovak.ts +41 -0
- package/src/experimental/projections/laea.ts +18 -0
- package/src/experimental/projections/lcc.ts +40 -0
- package/src/experimental/projections/mercator.ts +79 -0
- package/src/experimental/projections/mill.ts +19 -0
- package/src/experimental/projections/moll.ts +19 -0
- package/src/experimental/projections/nzmg.ts +27 -0
- package/src/experimental/projections/ob-tran.ts +161 -0
- package/src/experimental/projections/omerc.ts +66 -0
- package/src/experimental/projections/ortho.ts +26 -0
- package/src/experimental/projections/poly.ts +19 -0
- package/src/experimental/projections/qsc.ts +19 -0
- package/src/experimental/projections/robin.ts +19 -0
- package/src/experimental/projections/sinu.ts +19 -0
- package/src/experimental/projections/somerc.ts +19 -0
- package/src/experimental/projections/stere.ts +29 -0
- package/src/experimental/projections/sterea.ts +30 -0
- package/src/experimental/projections/tpers.ts +31 -0
- package/src/experimental/projections/transverse-mercator.ts +68 -0
- package/src/experimental/projections/utm.ts +33 -0
- package/src/experimental/projections/vandg.ts +19 -0
- package/src/experimental/scalar-output.ts +74 -0
- package/src/experimental/types.ts +61 -0
- package/src/experimental/typescript-projection.ts +545 -0
- package/src/experimental/vertical-datum.ts +39 -0
- package/src/grids/velocity.ts +5 -0
- package/src/index.ts +7 -0
- package/src/lib/projection.ts +167 -0
- package/src/operations.ts +358 -0
- package/src/pipeline.ts +4 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
// SPDX-FileComment: Original adapter for PROJ's Geodetic TIFF Grid specification, not a proj4js/PROJ fork. Decoding is caller-owned; no TIFF library is imported at runtime.
|
|
5
|
+
import {createVerticalGrid} from './vertical';
|
|
6
|
+
import type {VerticalGrid} from './types';
|
|
7
|
+
|
|
8
|
+
type Metadata = Record<string, unknown> | null;
|
|
9
|
+
type DirectoryTag = 'ModelPixelScale' | 'ModelTiepoint' | 'ModelTransformation' | 'NewSubfileType';
|
|
10
|
+
/** Structural subset of geotiff.js v2/v3. Metadata may be synchronous or asynchronous. */
|
|
11
|
+
export type VerticalGridGeoTIFFImage = {
|
|
12
|
+
getWidth(): number;
|
|
13
|
+
getHeight(): number;
|
|
14
|
+
getGeoKeys(): Record<string, unknown> | null;
|
|
15
|
+
getGDALMetadata(sample?: number | null): Metadata | Promise<Metadata>;
|
|
16
|
+
getGDALNoData?(): number | null;
|
|
17
|
+
fileDirectory: Partial<Record<DirectoryTag, unknown>> | {getValue(name: DirectoryTag): unknown};
|
|
18
|
+
readRasters(options: {
|
|
19
|
+
samples: number[];
|
|
20
|
+
interleave: false;
|
|
21
|
+
}): Promise<ArrayLike<number | ArrayLike<number>>>;
|
|
22
|
+
};
|
|
23
|
+
export type VerticalGridGeoTIFF = {
|
|
24
|
+
getImageCount(): Promise<number>;
|
|
25
|
+
getImage(index: number): Promise<VerticalGridGeoTIFFImage>;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/** Plain decoded raster input, structurally compatible with loaders.gl GeoTIFFRasterData. */
|
|
29
|
+
export type VerticalGridGeoTIFFData = {
|
|
30
|
+
/** Images in original file order, with parents before nested children. */
|
|
31
|
+
images: readonly {
|
|
32
|
+
/** Original dimensions in pixels. */
|
|
33
|
+
width: number;
|
|
34
|
+
/** Original dimensions in pixels. */
|
|
35
|
+
height: number;
|
|
36
|
+
/** Raw bands; original band zero must be present. */
|
|
37
|
+
bands: readonly {
|
|
38
|
+
/** Original zero-based sample index, retained when selecting bands. */
|
|
39
|
+
index: number;
|
|
40
|
+
/** Native, unscaled samples in TIFF row order. */
|
|
41
|
+
data: ArrayLike<number>;
|
|
42
|
+
/** Per-band GDAL metadata. */
|
|
43
|
+
metadata: Metadata;
|
|
44
|
+
}[];
|
|
45
|
+
/** Decoded CRS and pixel-registration GeoKeys. */
|
|
46
|
+
geoKeys: Metadata;
|
|
47
|
+
/** Image-level GDAL metadata. */
|
|
48
|
+
metadata: Metadata;
|
|
49
|
+
/** Declared nodata value, before scale/offset. */
|
|
50
|
+
noData: number | null;
|
|
51
|
+
/** Original geometry and image-kind tags. */
|
|
52
|
+
fileDirectory: Partial<Record<DirectoryTag, unknown>>;
|
|
53
|
+
}[];
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/** Adapts plain numeric rasters without importing or retaining a TIFF decoder. */
|
|
57
|
+
function getRasterImage(data: VerticalGridGeoTIFFData, index: number): VerticalGridGeoTIFFImage {
|
|
58
|
+
const image = data.images[index];
|
|
59
|
+
const band = image.bands.find(candidate => candidate.index === 0);
|
|
60
|
+
if (!band) throw new Error('Vertical GeoTIFF requires original band zero');
|
|
61
|
+
return {
|
|
62
|
+
getWidth: () => image.width,
|
|
63
|
+
getHeight: () => image.height,
|
|
64
|
+
getGeoKeys: () => image.geoKeys,
|
|
65
|
+
getGDALMetadata: sample => (sample === 0 ? band.metadata : image.metadata),
|
|
66
|
+
getGDALNoData: () => image.noData,
|
|
67
|
+
fileDirectory: image.fileDirectory,
|
|
68
|
+
readRasters: async () => [band.data]
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function number(value: unknown, fallback: number): number {
|
|
73
|
+
if (value === undefined) return fallback;
|
|
74
|
+
if (
|
|
75
|
+
(typeof value !== 'number' && typeof value !== 'string') ||
|
|
76
|
+
(typeof value === 'string' && !value.trim()) ||
|
|
77
|
+
!Number.isFinite(Number(value))
|
|
78
|
+
)
|
|
79
|
+
throw new Error('Invalid vertical GeoTIFF scale or offset');
|
|
80
|
+
return Number(value);
|
|
81
|
+
}
|
|
82
|
+
function vector(value: unknown, length: number): number[] {
|
|
83
|
+
if (!value || typeof value !== 'object' || !('length' in value) || value.length !== length)
|
|
84
|
+
throw new Error('Vertical GeoTIFF requires one tiepoint and pixel scale');
|
|
85
|
+
const result = Array.from(value as ArrayLike<number>);
|
|
86
|
+
if (!result.every(Number.isFinite)) throw new Error('Invalid vertical GeoTIFF geometry');
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** Prepare metre geoid undulations from geographic, north-up PROJ Geodetic TIFF grids.
|
|
91
|
+
* The first band must declare geoid_undulation; dataset TYPE must be
|
|
92
|
+
* VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL. PixelIsPoint and PixelIsArea are supported.
|
|
93
|
+
* Later nested images take precedence. Overviews, ambiguous overlaps, rotations,
|
|
94
|
+
* non-metre bands and other operation types are rejected rather than inferred.
|
|
95
|
+
*/
|
|
96
|
+
export async function prepareScalarGeoTIFFGrids(
|
|
97
|
+
tiff: VerticalGridGeoTIFF | VerticalGridGeoTIFFData
|
|
98
|
+
): Promise<VerticalGrid[]> {
|
|
99
|
+
const count = 'images' in tiff ? tiff.images.length : await tiff.getImageCount();
|
|
100
|
+
if (!Number.isSafeInteger(count) || count < 1)
|
|
101
|
+
throw new Error('Vertical GeoTIFF requires at least one image');
|
|
102
|
+
const prepared: {
|
|
103
|
+
grid: VerticalGrid;
|
|
104
|
+
west: number;
|
|
105
|
+
south: number;
|
|
106
|
+
east: number;
|
|
107
|
+
north: number;
|
|
108
|
+
dx: number;
|
|
109
|
+
dy: number;
|
|
110
|
+
}[] = [];
|
|
111
|
+
for (let n = 0; n < count; n++) {
|
|
112
|
+
const image = 'images' in tiff ? getRasterImage(tiff, n) : await tiff.getImage(n);
|
|
113
|
+
const directory = image.fileDirectory;
|
|
114
|
+
const tag = (name: DirectoryTag) =>
|
|
115
|
+
'getValue' in directory ? directory.getValue(name) : directory[name];
|
|
116
|
+
if (tag('NewSubfileType') !== undefined && tag('NewSubfileType') !== 0)
|
|
117
|
+
throw new Error('Vertical GeoTIFF overviews and masks are unsupported');
|
|
118
|
+
if (tag('ModelTransformation') !== undefined)
|
|
119
|
+
throw new Error('Vertical GeoTIFF requires axis-aligned tiepoint/scale geometry');
|
|
120
|
+
const keys = image.getGeoKeys();
|
|
121
|
+
if (
|
|
122
|
+
keys?.['GTModelTypeGeoKey'] !== 2 ||
|
|
123
|
+
(keys['GeogAngularUnitsGeoKey'] !== undefined && keys['GeogAngularUnitsGeoKey'] !== 9102)
|
|
124
|
+
)
|
|
125
|
+
throw new Error('Vertical GeoTIFF requires a geographic degree grid');
|
|
126
|
+
if (
|
|
127
|
+
(keys['GeogPrimeMeridianGeoKey'] !== undefined && keys['GeogPrimeMeridianGeoKey'] !== 8901) ||
|
|
128
|
+
(keys['GeogPrimeMeridianLongGeoKey'] !== undefined &&
|
|
129
|
+
keys['GeogPrimeMeridianLongGeoKey'] !== 0)
|
|
130
|
+
)
|
|
131
|
+
throw new Error('Vertical GeoTIFF requires Greenwich longitudes');
|
|
132
|
+
const rasterType = keys['GTRasterTypeGeoKey'];
|
|
133
|
+
if (rasterType !== 1 && rasterType !== 2)
|
|
134
|
+
throw new Error('Vertical GeoTIFF requires explicit PixelIsPoint or PixelIsArea');
|
|
135
|
+
const metadata = await image.getGDALMetadata();
|
|
136
|
+
const band = await image.getGDALMetadata(0);
|
|
137
|
+
if (
|
|
138
|
+
metadata?.['TYPE'] !== 'VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL' ||
|
|
139
|
+
band?.['DESCRIPTION'] !== 'geoid_undulation'
|
|
140
|
+
)
|
|
141
|
+
throw new Error('Vertical GeoTIFF requires a geographic-to-vertical geoid_undulation band');
|
|
142
|
+
if (band['UNITTYPE'] !== undefined && band['UNITTYPE'] !== 'metre')
|
|
143
|
+
throw new Error('Vertical GeoTIFF geoid undulations must be in metres');
|
|
144
|
+
if (
|
|
145
|
+
metadata['interpolation_method'] !== undefined &&
|
|
146
|
+
metadata['interpolation_method'] !== 'bilinear'
|
|
147
|
+
)
|
|
148
|
+
throw new Error('Vertical GeoTIFF supports only bilinear interpolation');
|
|
149
|
+
const scale = number(band['SCALE'], 1),
|
|
150
|
+
offset = number(band['OFFSET'], 0);
|
|
151
|
+
const [dx, dy] = vector(tag('ModelPixelScale'), 3);
|
|
152
|
+
const [i, j, k, x, y, z] = vector(tag('ModelTiepoint'), 6);
|
|
153
|
+
const width = image.getWidth(),
|
|
154
|
+
height = image.getHeight();
|
|
155
|
+
if (
|
|
156
|
+
!(dx > 0 && dy > 0) ||
|
|
157
|
+
k !== 0 ||
|
|
158
|
+
z !== 0 ||
|
|
159
|
+
![width, height].every(v => Number.isSafeInteger(v) && v >= 2)
|
|
160
|
+
)
|
|
161
|
+
throw new Error('Invalid vertical GeoTIFF geometry or dimensions');
|
|
162
|
+
const half = rasterType === 1 ? 0.5 : 0;
|
|
163
|
+
const west = x + (half - i) * dx;
|
|
164
|
+
const north = y - (half - j) * dy;
|
|
165
|
+
const south = north - (height - 1) * dy,
|
|
166
|
+
east = west + (width - 1) * dx;
|
|
167
|
+
if (
|
|
168
|
+
![west, south, east, north].every(Number.isFinite) ||
|
|
169
|
+
!(east > west && north > south) ||
|
|
170
|
+
east - west > 360 ||
|
|
171
|
+
south < -90 ||
|
|
172
|
+
north > 90 ||
|
|
173
|
+
!Number.isSafeInteger(width * height)
|
|
174
|
+
)
|
|
175
|
+
throw new Error('Invalid vertical GeoTIFF geographic extent');
|
|
176
|
+
// Require ordered nested or disjoint images, so TIFF ordering cannot silently
|
|
177
|
+
// replace a fine child with a coarse parent or an ambiguous overlapping grid.
|
|
178
|
+
for (const other of prepared) {
|
|
179
|
+
const overlaps =
|
|
180
|
+
west < other.east && east > other.west && south < other.north && north > other.south;
|
|
181
|
+
if (
|
|
182
|
+
overlaps &&
|
|
183
|
+
!(
|
|
184
|
+
west >= other.west &&
|
|
185
|
+
east <= other.east &&
|
|
186
|
+
south >= other.south &&
|
|
187
|
+
north <= other.north &&
|
|
188
|
+
dx <= other.dx &&
|
|
189
|
+
dy <= other.dy
|
|
190
|
+
)
|
|
191
|
+
)
|
|
192
|
+
throw new Error(
|
|
193
|
+
'Vertical GeoTIFF images must be ordered parent before nested child or disjoint'
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
const rasters = await image.readRasters({samples: [0], interleave: false});
|
|
197
|
+
const values = rasters[0];
|
|
198
|
+
if (!values || typeof values === 'number' || values.length !== width * height)
|
|
199
|
+
throw new Error('Vertical GeoTIFF requires a complete non-interleaved height band');
|
|
200
|
+
const declaredNoData = image.getGDALNoData?.();
|
|
201
|
+
// GDAL_NODATA is text; compare it in the decoded band's numeric precision.
|
|
202
|
+
const nodata =
|
|
203
|
+
values instanceof Float32Array && typeof declaredNoData === 'number'
|
|
204
|
+
? Math.fround(declaredNoData)
|
|
205
|
+
: declaredNoData;
|
|
206
|
+
const offsets = new Float64Array(width * height);
|
|
207
|
+
for (let row = 0; row < height; row++)
|
|
208
|
+
for (let col = 0; col < width; col++) {
|
|
209
|
+
const raw = values[row * width + col];
|
|
210
|
+
const value = raw === nodata || !Number.isFinite(raw) ? NaN : raw * scale + offset;
|
|
211
|
+
if (Number.isFinite(raw) && raw !== nodata && !Number.isFinite(value))
|
|
212
|
+
throw new Error('Vertical GeoTIFF scale/offset produced a non-finite height');
|
|
213
|
+
offsets[(height - 1 - row) * width + col] = value;
|
|
214
|
+
}
|
|
215
|
+
prepared.push({
|
|
216
|
+
grid: createVerticalGrid({
|
|
217
|
+
origin: [west, south],
|
|
218
|
+
step: [dx, dy],
|
|
219
|
+
size: [width, height],
|
|
220
|
+
offsets
|
|
221
|
+
}),
|
|
222
|
+
west,
|
|
223
|
+
south,
|
|
224
|
+
east,
|
|
225
|
+
north,
|
|
226
|
+
dx,
|
|
227
|
+
dy
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
return prepared.map(image => image.grid);
|
|
231
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
/** Prepared horizontal datum grid. Inputs/outputs are east-positive longitude/latitude radians. */
|
|
5
|
+
export type DatumGrid = {
|
|
6
|
+
readonly subgridCount: number;
|
|
7
|
+
/** Optional mutable hook. On false, x/y must remain unchanged; always preserve z. */
|
|
8
|
+
shiftInPlace?(point: {x: number; y: number}, inverse: boolean): boolean;
|
|
9
|
+
/** undefined means no usable subgrid covers this coordinate; other failures throw. */
|
|
10
|
+
shift(longitude: number, latitude: number, inverse: boolean): [number, number] | undefined;
|
|
11
|
+
};
|
|
12
|
+
/** Per-instance registration. Readers produce grids before synchronous construction. */
|
|
13
|
+
export type DatumGridCollection = Readonly<Record<string, DatumGrid>>;
|
|
14
|
+
export type DatumGridReference = {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly optional: boolean;
|
|
17
|
+
readonly grid?: DatumGrid;
|
|
18
|
+
};
|
|
19
|
+
/** Internal west-positive node layout, matching the pinned proj4js grid convention. */
|
|
20
|
+
export type Subgrid = {
|
|
21
|
+
readonly origin: readonly [number, number];
|
|
22
|
+
readonly step: readonly [number, number];
|
|
23
|
+
readonly size: readonly [number, number];
|
|
24
|
+
/** Reader-owned west-positive longitude/latitude shift pairs in radians. */
|
|
25
|
+
readonly shifts: Float64Array;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/** Geoid undulation N in metres: ellipsoidal height h = gravity-related height H + N.
|
|
29
|
+
* Inputs are east-positive Greenwich longitude and latitude in radians, in the
|
|
30
|
+
* horizontal datum of the CRS carrying +geoidgrids. Undefined means no coverage.
|
|
31
|
+
*/
|
|
32
|
+
export type VerticalGrid = {
|
|
33
|
+
getOffset(longitude: number, latitude: number): number | undefined;
|
|
34
|
+
};
|
|
35
|
+
export type VerticalGridCollection = Readonly<Record<string, VerticalGrid>>;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
// SPDX-FileComment: Original adapter inspired by PROJ's Geodetic TIFF Grid specification, not a fork. Caller-owned TIFF decoding; no proj4js, PROJ or TIFF decoder code is copied here.
|
|
5
|
+
import {prepareScalarGeoTIFFGrids} from './scalar-geotiff';
|
|
6
|
+
import {velocityGridFromComponents} from './velocity';
|
|
7
|
+
import type {VelocityGrid} from './velocity';
|
|
8
|
+
import type {
|
|
9
|
+
VerticalGridGeoTIFF,
|
|
10
|
+
VerticalGridGeoTIFFData,
|
|
11
|
+
VerticalGridGeoTIFFImage
|
|
12
|
+
} from './vertical-geotiff';
|
|
13
|
+
export type VelocityGridGeoTIFF = VerticalGridGeoTIFF;
|
|
14
|
+
export type VelocityGridGeoTIFFImage = VerticalGridGeoTIFFImage;
|
|
15
|
+
export type VelocityGridGeoTIFFData = VerticalGridGeoTIFFData;
|
|
16
|
+
|
|
17
|
+
/** Prepare geographic, north-up GTG VELOCITY images with explicit first-three ENU
|
|
18
|
+
* bands in millimetres per year. Accuracy bands are ignored. No model/frame/epoch
|
|
19
|
+
* inference. Decoded loaders.gl rasters and structural geotiff.js objects are accepted.
|
|
20
|
+
*/
|
|
21
|
+
export async function loadVelocityGeoTIFFGrid(
|
|
22
|
+
tiff: VelocityGridGeoTIFF | VelocityGridGeoTIFFData
|
|
23
|
+
): Promise<VelocityGrid> {
|
|
24
|
+
const count = 'images' in tiff ? tiff.images.length : await tiff.getImageCount();
|
|
25
|
+
if (!Number.isSafeInteger(count) || count < 1)
|
|
26
|
+
throw new Error('Velocity GeoTIFF requires images');
|
|
27
|
+
const images: VerticalGridGeoTIFFImage[][] = [[], [], []];
|
|
28
|
+
const names = ['east_velocity', 'north_velocity', 'up_velocity'];
|
|
29
|
+
for (let index = 0; index < count; index++) {
|
|
30
|
+
const raster = 'images' in tiff ? tiff.images[index] : undefined;
|
|
31
|
+
const image = raster ? undefined : await (tiff as VelocityGridGeoTIFF).getImage(index);
|
|
32
|
+
const metadata = raster ? raster.metadata : await image.getGDALMetadata();
|
|
33
|
+
if (metadata?.['TYPE'] !== 'VELOCITY')
|
|
34
|
+
throw new Error('Velocity GeoTIFF requires TYPE=VELOCITY');
|
|
35
|
+
for (let component = 0; component < 3; component++) {
|
|
36
|
+
const band = raster?.bands.find(b => b.index === component);
|
|
37
|
+
if (raster && !band) throw new Error('Velocity GeoTIFF requires original ENU bands 0, 1, 2');
|
|
38
|
+
const bandMetadata = raster ? band.metadata : await image.getGDALMetadata(component);
|
|
39
|
+
if (
|
|
40
|
+
bandMetadata?.['DESCRIPTION'] !== names[component] ||
|
|
41
|
+
!['millimetres per year', 'mm/year'].includes(bandMetadata?.['UNITTYPE'] as string)
|
|
42
|
+
)
|
|
43
|
+
throw new Error(
|
|
44
|
+
'Velocity GeoTIFF requires explicit ENU descriptions and millimetres per year'
|
|
45
|
+
);
|
|
46
|
+
// Reuse scalar geometry, scale/offset, nodata, ownership and hierarchy checks.
|
|
47
|
+
// This internal view presents native millimetres as generic scalar values;
|
|
48
|
+
// conversion to metres/year occurs only after all three components are sampled.
|
|
49
|
+
images[component].push({
|
|
50
|
+
getWidth: () => (raster ? raster.width : image.getWidth()),
|
|
51
|
+
getHeight: () => (raster ? raster.height : image.getHeight()),
|
|
52
|
+
getGeoKeys: () => (raster ? raster.geoKeys : image.getGeoKeys()),
|
|
53
|
+
getGDALMetadata: sample =>
|
|
54
|
+
sample === 0
|
|
55
|
+
? {...bandMetadata, DESCRIPTION: 'geoid_undulation', UNITTYPE: 'metre'}
|
|
56
|
+
: {...metadata, TYPE: 'VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL'},
|
|
57
|
+
getGDALNoData: () => (raster ? raster.noData : (image.getGDALNoData?.() ?? null)),
|
|
58
|
+
fileDirectory: raster ? raster.fileDirectory : image.fileDirectory,
|
|
59
|
+
readRasters: async () =>
|
|
60
|
+
raster ? [band.data] : image.readRasters({samples: [component], interleave: false})
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const bands = await Promise.all(
|
|
65
|
+
images.map(list =>
|
|
66
|
+
prepareScalarGeoTIFFGrids({
|
|
67
|
+
getImageCount: async () => list.length,
|
|
68
|
+
getImage: async index => list[index]
|
|
69
|
+
})
|
|
70
|
+
)
|
|
71
|
+
);
|
|
72
|
+
const grids = bands[0].map((east, index) =>
|
|
73
|
+
velocityGridFromComponents(east, bands[1][index], bands[2][index], 0.001)
|
|
74
|
+
);
|
|
75
|
+
return Object.freeze({
|
|
76
|
+
sample(longitude, latitude, output): boolean {
|
|
77
|
+
for (let i = grids.length - 1; i >= 0; i--)
|
|
78
|
+
if (grids[i].sample(longitude, latitude, output)) return true;
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
// SPDX-FileComment: Original ENU grid preparation inspired by PROJ's velocity grid conventions. Bilinear interpolation reuses original math.gl vertical grids; no upstream fork.
|
|
5
|
+
import {createVerticalGrid} from './vertical';
|
|
6
|
+
import type {VerticalGridOptions} from './vertical';
|
|
7
|
+
import type {ProjectionPoint} from '../types';
|
|
8
|
+
import type {VerticalGrid} from './types';
|
|
9
|
+
|
|
10
|
+
/** Prepared velocities in metres per decimal year at Greenwich lon/lat radians.
|
|
11
|
+
* sample writes ENU into output.x/y/z only on success. False means no coverage.
|
|
12
|
+
*/
|
|
13
|
+
export type VelocityGrid = {
|
|
14
|
+
sample(longitude: number, latitude: number, output: ProjectionPoint): boolean;
|
|
15
|
+
};
|
|
16
|
+
export type VelocityGridOptions = Omit<VerticalGridOptions, 'offsets'> & {
|
|
17
|
+
readonly units: 'm/year' | 'mm/year';
|
|
18
|
+
/** Owned snapshots, row-major south-to-north and west-to-east. */
|
|
19
|
+
readonly east: ArrayLike<number>;
|
|
20
|
+
readonly north: ArrayLike<number>;
|
|
21
|
+
readonly up: ArrayLike<number>;
|
|
22
|
+
};
|
|
23
|
+
/** Internal atomic three-band sampler: never mix components from different images. */
|
|
24
|
+
export function velocityGridFromComponents(
|
|
25
|
+
east: VerticalGrid,
|
|
26
|
+
north: VerticalGrid,
|
|
27
|
+
up: VerticalGrid,
|
|
28
|
+
scale: number
|
|
29
|
+
): VelocityGrid {
|
|
30
|
+
return Object.freeze({
|
|
31
|
+
sample(longitude: number, latitude: number, output: ProjectionPoint): boolean {
|
|
32
|
+
const e = east.getOffset(longitude, latitude),
|
|
33
|
+
n = north.getOffset(longitude, latitude),
|
|
34
|
+
u = up.getOffset(longitude, latitude);
|
|
35
|
+
if (e === undefined || n === undefined || u === undefined) return false;
|
|
36
|
+
const x = e * scale,
|
|
37
|
+
y = n * scale,
|
|
38
|
+
z = u * scale;
|
|
39
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z))
|
|
40
|
+
throw new Error('Non-finite velocity interpolation');
|
|
41
|
+
output.x = x;
|
|
42
|
+
output.y = y;
|
|
43
|
+
output.z = z;
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/** No extrapolation; nodata in any contributing component makes the sample unavailable. */
|
|
49
|
+
export function createVelocityGrid(options: VelocityGridOptions): VelocityGrid {
|
|
50
|
+
if (!['m/year', 'mm/year'].includes(options.units))
|
|
51
|
+
throw new Error('Explicit velocity units required');
|
|
52
|
+
return velocityGridFromComponents(
|
|
53
|
+
createVerticalGrid({...options, offsets: options.east}),
|
|
54
|
+
createVerticalGrid({...options, offsets: options.north}),
|
|
55
|
+
createVerticalGrid({...options, offsets: options.up}),
|
|
56
|
+
options.units === 'mm/year' ? 0.001 : 1
|
|
57
|
+
);
|
|
58
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
// SPDX-FileComment: Original adapter for PROJ's GTG conventions; no upstream decoder code is copied.
|
|
5
|
+
import {prepareScalarGeoTIFFGrids} from './scalar-geotiff';
|
|
6
|
+
import type {VerticalGrid} from './types';
|
|
7
|
+
import type {VerticalGridGeoTIFF, VerticalGridGeoTIFFData} from './scalar-geotiff';
|
|
8
|
+
export type {
|
|
9
|
+
VerticalGridGeoTIFF,
|
|
10
|
+
VerticalGridGeoTIFFImage,
|
|
11
|
+
VerticalGridGeoTIFFData
|
|
12
|
+
} from './scalar-geotiff';
|
|
13
|
+
|
|
14
|
+
/** Prepare owned geoid grids; later nested images take precedence with nodata fallback. */
|
|
15
|
+
export async function loadVerticalGeoTIFFGrid(
|
|
16
|
+
tiff: VerticalGridGeoTIFF | VerticalGridGeoTIFFData
|
|
17
|
+
): Promise<VerticalGrid> {
|
|
18
|
+
const grids = await prepareScalarGeoTIFFGrids(tiff);
|
|
19
|
+
return Object.freeze({
|
|
20
|
+
getOffset(longitude: number, latitude: number): number | undefined {
|
|
21
|
+
for (let i = grids.length - 1; i >= 0; i--) {
|
|
22
|
+
const value = grids[i].getOffset(longitude, latitude);
|
|
23
|
+
if (value !== undefined) return value;
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
// SPDX-FileComment: Original bilinear vertical grid and structural math.gl/geoid adapter. PROJ supplies independent numeric references; no upstream code is copied.
|
|
5
|
+
import type {VerticalGrid} from './types';
|
|
6
|
+
export type {VerticalGrid, VerticalGridCollection} from './types';
|
|
7
|
+
|
|
8
|
+
export type VerticalGridOptions = {
|
|
9
|
+
/** Southwest node, [longitude, latitude] in degrees. */
|
|
10
|
+
origin: readonly [number, number];
|
|
11
|
+
/** Positive [longitude, latitude] node spacing in degrees. */
|
|
12
|
+
step: readonly [number, number];
|
|
13
|
+
size: readonly [number, number];
|
|
14
|
+
/** Row-major south-to-north, west-to-east geoid undulations in metres. Copied. */
|
|
15
|
+
offsets: ArrayLike<number>;
|
|
16
|
+
/** Non-finite values are also treated as nodata. */
|
|
17
|
+
noData?: number;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/** Prepare an owned, synchronous grid with inclusive edges and no extrapolation. */
|
|
21
|
+
export function createVerticalGrid(options: VerticalGridOptions): VerticalGrid {
|
|
22
|
+
const [west, south] = options.origin;
|
|
23
|
+
const [dx, dy] = options.step;
|
|
24
|
+
const [width, height] = options.size;
|
|
25
|
+
const east = west + (width - 1) * dx;
|
|
26
|
+
const north = south + (height - 1) * dy;
|
|
27
|
+
if (
|
|
28
|
+
![west, south, dx, dy, east, north].every(Number.isFinite) ||
|
|
29
|
+
![width, height].every(n => Number.isSafeInteger(n) && n >= 2) ||
|
|
30
|
+
!(dx > 0 && dy > 0) ||
|
|
31
|
+
east - west > 360 ||
|
|
32
|
+
south < -90 ||
|
|
33
|
+
north > 90 ||
|
|
34
|
+
width * height !== options.offsets.length
|
|
35
|
+
)
|
|
36
|
+
throw new Error('Invalid vertical grid geometry or node count');
|
|
37
|
+
const noData = options.noData;
|
|
38
|
+
const values = Float64Array.from(options.offsets, value =>
|
|
39
|
+
value === noData || !Number.isFinite(value) ? NaN : value
|
|
40
|
+
);
|
|
41
|
+
return Object.freeze({
|
|
42
|
+
getOffset(longitude: number, latitude: number): number | undefined {
|
|
43
|
+
if (!Number.isFinite(longitude) || !Number.isFinite(latitude))
|
|
44
|
+
throw new Error('Vertical grid coordinates must be finite');
|
|
45
|
+
// Choose the equivalent longitude nearest the grid's centre, including
|
|
46
|
+
// grids expressed in 0..360 degrees or crossing the antimeridian.
|
|
47
|
+
let x = longitude * (180 / Math.PI);
|
|
48
|
+
const epsilon = 1e-10;
|
|
49
|
+
// Preserve either explicit edge of a grid with duplicate seam nodes.
|
|
50
|
+
if (x < west - epsilon * dx || x > east + epsilon * dx)
|
|
51
|
+
x += 360 * Math.round(((west + east) / 2 - x) / 360);
|
|
52
|
+
let col = (x - west) / dx;
|
|
53
|
+
let row = (latitude * (180 / Math.PI) - south) / dy;
|
|
54
|
+
if (
|
|
55
|
+
!Number.isFinite(col) ||
|
|
56
|
+
!Number.isFinite(row) ||
|
|
57
|
+
col < -epsilon ||
|
|
58
|
+
row < -epsilon ||
|
|
59
|
+
col > width - 1 + epsilon ||
|
|
60
|
+
row > height - 1 + epsilon
|
|
61
|
+
)
|
|
62
|
+
return undefined;
|
|
63
|
+
col = Math.max(0, Math.min(width - 1, col));
|
|
64
|
+
row = Math.max(0, Math.min(height - 1, row));
|
|
65
|
+
const i = Math.min(width - 2, Math.floor(col));
|
|
66
|
+
const j = Math.min(height - 2, Math.floor(row));
|
|
67
|
+
const u = col - i,
|
|
68
|
+
v = row - j;
|
|
69
|
+
let offset = 0;
|
|
70
|
+
for (let n = 0; n < 4; n++) {
|
|
71
|
+
const right = n % 2,
|
|
72
|
+
upper = n > 1;
|
|
73
|
+
const weight = (right ? u : 1 - u) * (upper ? v : 1 - v);
|
|
74
|
+
if (!weight) continue;
|
|
75
|
+
const value = values[(j + (upper ? 1 : 0)) * width + i + right];
|
|
76
|
+
if (!Number.isFinite(value)) return undefined;
|
|
77
|
+
offset += weight * value;
|
|
78
|
+
}
|
|
79
|
+
return offset;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** Adapt an already loaded @math.gl/geoid Geoid without importing its implementation.
|
|
85
|
+
* The supplied model owns its data and interpolation choice; do not mutate it while in use.
|
|
86
|
+
*/
|
|
87
|
+
export function createGeoidGrid(geoid: {
|
|
88
|
+
getHeight(latitude: number, longitude: number): number;
|
|
89
|
+
}): VerticalGrid {
|
|
90
|
+
if (!geoid || typeof geoid.getHeight !== 'function') throw new Error('Invalid geoid model');
|
|
91
|
+
return Object.freeze({
|
|
92
|
+
getOffset(longitude: number, latitude: number): number | undefined {
|
|
93
|
+
if (!Number.isFinite(longitude) || !Number.isFinite(latitude))
|
|
94
|
+
throw new Error('Vertical grid coordinates must be finite');
|
|
95
|
+
const offset = geoid.getHeight(latitude * (180 / Math.PI), longitude * (180 / Math.PI));
|
|
96
|
+
return Number.isFinite(offset) ? offset : undefined;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: 2014 Mike Adair, Richard Greenwood, Didier Richard, Stephen Irons, Olivier Terral and Calvin Metcalf (proj4js)
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) 2016, Thomas Knudsen / SDFE (PROJ)
|
|
5
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
6
|
+
// SPDX-FileComment: Original whole-buffer dispatch. Small-angle equations follow the proj4js adaptation in datum.ts; see ../../PROJ4-LICENSE.md. Exact equations follow exact-helmert.ts, adapted from PROJ 9.5.1 helmert.cpp; see ../../PROJ-LICENSE.txt. Consume its prepared matrix without recomputing rotations.
|
|
7
|
+
import type {NumericFlatOperation} from './numeric-flat';
|
|
8
|
+
|
|
9
|
+
/** Setup-owned coefficients: small-angle rx/ry/rz or row-major exact matrix, then dx/dy/dz/scale. */
|
|
10
|
+
export function createHelmertFlat(
|
|
11
|
+
coefficients: readonly number[],
|
|
12
|
+
inverse: boolean,
|
|
13
|
+
exact: boolean
|
|
14
|
+
): NumericFlatOperation {
|
|
15
|
+
const dx = coefficients[9],
|
|
16
|
+
dy = coefficients[10],
|
|
17
|
+
dz = coefficients[11],
|
|
18
|
+
scale = coefficients[12];
|
|
19
|
+
const a = coefficients[0],
|
|
20
|
+
b = coefficients[1],
|
|
21
|
+
c = coefficients[2],
|
|
22
|
+
d = coefficients[3],
|
|
23
|
+
e = coefficients[4],
|
|
24
|
+
f = coefficients[5],
|
|
25
|
+
g = coefficients[6],
|
|
26
|
+
h = coefficients[7],
|
|
27
|
+
j = coefficients[8];
|
|
28
|
+
return (coordinates, dimension, epochs) => {
|
|
29
|
+
const float32 = coordinates instanceof Float32Array;
|
|
30
|
+
const epochBuffer = typeof epochs === 'number' ? undefined : epochs;
|
|
31
|
+
for (let offset = 0, record = 0; offset < coordinates.length; offset += dimension, record++) {
|
|
32
|
+
let x = coordinates[offset],
|
|
33
|
+
y = coordinates[offset + 1],
|
|
34
|
+
z = coordinates[offset + 2];
|
|
35
|
+
if (epochBuffer && !Number.isFinite(epochBuffer[record]))
|
|
36
|
+
throw new Error('Coordinate epoch must be a finite decimal year');
|
|
37
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z))
|
|
38
|
+
throw new Error('Pipeline coordinate must be finite');
|
|
39
|
+
if (inverse) {
|
|
40
|
+
x = (x - dx) / scale;
|
|
41
|
+
y = (y - dy) / scale;
|
|
42
|
+
z = (z - dz) / scale;
|
|
43
|
+
}
|
|
44
|
+
let outX: number, outY: number, outZ: number;
|
|
45
|
+
if (exact) {
|
|
46
|
+
if (inverse) {
|
|
47
|
+
outX = a * x + d * y + g * z;
|
|
48
|
+
outY = b * x + e * y + h * z;
|
|
49
|
+
outZ = c * x + f * y + j * z;
|
|
50
|
+
} else {
|
|
51
|
+
outX = scale * (a * x + b * y + c * z) + dx;
|
|
52
|
+
outY = scale * (d * x + e * y + f * z) + dy;
|
|
53
|
+
outZ = scale * (g * x + h * y + j * z) + dz;
|
|
54
|
+
}
|
|
55
|
+
} else if (inverse) {
|
|
56
|
+
outX = x + c * y - b * z;
|
|
57
|
+
outY = -c * x + y + a * z;
|
|
58
|
+
outZ = b * x - a * y + z;
|
|
59
|
+
} else {
|
|
60
|
+
outX = scale * (x - c * y + b * z) + dx;
|
|
61
|
+
outY = scale * (c * x + y - a * z) + dy;
|
|
62
|
+
outZ = scale * (-b * x + a * y + z) + dz;
|
|
63
|
+
}
|
|
64
|
+
if (!Number.isFinite(outX) || !Number.isFinite(outY) || !Number.isFinite(outZ))
|
|
65
|
+
throw new Error('Pipeline coordinate must be finite');
|
|
66
|
+
if (
|
|
67
|
+
float32 &&
|
|
68
|
+
Math.max(Math.abs(outX), Math.abs(outY), Math.abs(outZ)) > 3.4028234663852886e38
|
|
69
|
+
)
|
|
70
|
+
throw new Error('Pipeline output exceeds Float32 range');
|
|
71
|
+
coordinates[offset] = outX;
|
|
72
|
+
coordinates[offset + 1] = outY;
|
|
73
|
+
coordinates[offset + 2] = outZ;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
export * from './core';
|
|
6
|
+
export {mercator} from './projections/mercator';
|
|
7
|
+
export {equidistantCylindrical} from './projections/equidistant-cylindrical';
|
|
8
|
+
export {lambertConformalConic} from './projections/lcc';
|
|
9
|
+
export {albersEqualArea} from './projections/aea';
|
|
10
|
+
export {equidistantConic} from './projections/eqdc';
|
|
11
|
+
export {lambertAzimuthalEqualArea} from './projections/laea';
|
|
12
|
+
export {stereographic} from './projections/stere';
|
|
13
|
+
export {obliqueStereographic} from './projections/sterea';
|
|
14
|
+
export {azimuthalEquidistant} from './projections/aeqd';
|
|
15
|
+
export {transverseMercator, extendedTransverseMercator} from './projections/transverse-mercator';
|
|
16
|
+
export {universalTransverseMercator} from './projections/utm';
|
|
17
|
+
export {geocentric} from './projections/geocentric';
|
|
18
|
+
export {bonne} from './projections/bonne';
|
|
19
|
+
export {cassiniSoldner} from './projections/cass';
|
|
20
|
+
export {cylindricalEqualArea} from './projections/cea';
|
|
21
|
+
export {eckertVI} from './projections/eck6';
|
|
22
|
+
export {equalEarth} from './projections/eqearth';
|
|
23
|
+
export {equirectangular} from './projections/equi';
|
|
24
|
+
export {geostationary} from './projections/geos';
|
|
25
|
+
export {gnomonic} from './projections/gnom';
|
|
26
|
+
export {gaussSchreiberTransverseMercator} from './projections/gstmerc';
|
|
27
|
+
export {krovak} from './projections/krovak';
|
|
28
|
+
export {millerCylindrical} from './projections/mill';
|
|
29
|
+
export {mollweide} from './projections/moll';
|
|
30
|
+
export {newZealandMapGrid} from './projections/nzmg';
|
|
31
|
+
export {obliqueMercator} from './projections/omerc';
|
|
32
|
+
export {orthographic} from './projections/ortho';
|
|
33
|
+
export {polyconic} from './projections/poly';
|
|
34
|
+
export {quadrilateralizedSphericalCube} from './projections/qsc';
|
|
35
|
+
export {robinson} from './projections/robin';
|
|
36
|
+
export {sinusoidal} from './projections/sinu';
|
|
37
|
+
export {swissObliqueMercator} from './projections/somerc';
|
|
38
|
+
export {tiltedPerspective} from './projections/tpers';
|
|
39
|
+
export {vanDerGrinten} from './projections/vandg';
|
|
40
|
+
export {obliqueTransformation} from './projections/ob-tran';
|
|
41
|
+
export {wktCRSParser} from './crs/wkt';
|
|
42
|
+
export {projJSONCRSParser} from './crs/projjson';
|
|
43
|
+
export {parseNTv2Grid} from './grids/ntv2';
|
|
44
|
+
export type {NTv2GridOptions} from './grids/ntv2';
|
|
45
|
+
export {loadGeoTIFFGrid} from './grids/geotiff';
|
|
46
|
+
export type {DatumGridGeoTIFF, DatumGridGeoTIFFImage} from './grids/geotiff';
|
|
47
|
+
|
|
48
|
+
export {parseGTXGrid} from './grids/gtx';
|
|
49
|
+
export {createVerticalGrid, createGeoidGrid} from './grids/vertical';
|
|
50
|
+
export type {VerticalGridOptions} from './grids/vertical';
|
|
51
|
+
|
|
52
|
+
export {loadVerticalGeoTIFFGrid} from './grids/vertical-geotiff';
|
|
53
|
+
export type {
|
|
54
|
+
VerticalGridGeoTIFF,
|
|
55
|
+
VerticalGridGeoTIFFImage,
|
|
56
|
+
VerticalGridGeoTIFFData
|
|
57
|
+
} from './grids/vertical-geotiff';
|
|
58
|
+
|
|
59
|
+
export * from './projection-pipeline';
|