R ECENT EVOLUTION OF GEOSPATIAL STANDARDS and their implementation - - PowerPoint PPT Presentation

r ecent evolution of geospatial standards and their
SMART_READER_LITE
LIVE PREVIEW

R ECENT EVOLUTION OF GEOSPATIAL STANDARDS and their implementation - - PowerPoint PPT Presentation

R ECENT EVOLUTION OF GEOSPATIAL STANDARDS and their implementation in Apache SIS Mar%n Desruisseaux September 2015 h7p://sis.apache.org Note: those slides are s%ll incomplete. They will


slide-1
SLIDE 1

RECENT EVOLUTION OF

GEOSPATIAL STANDARDS ¡

and their implementation in Apache SIS

Mar%n ¡Desruisseaux ¡

September ¡2015 ¡

h7p://sis.apache.org ¡

Note: ¡those ¡slides ¡are ¡s%ll ¡incomplete. ¡ They ¡will ¡be ¡completed ¡for ¡the ¡conference. ¡ ¡

slide-2
SLIDE 2

What ¡is ¡a ¡standard ¡

  • Standards ¡are ¡dis.lled ¡wisdom ¡

– of ¡peoples ¡with ¡exper%se ¡in ¡their ¡subject ¡ – from ¡collabora%on ¡in ¡standardiza%on ¡organiza%ons ¡

  • ISO

¡— ¡Interna%onal ¡Organiza%on ¡for ¡Standardiza%on ¡

  • OGC ¡— ¡Open ¡Geospa%al ¡Consor%um ¡
  • W3C ¡— ¡World ¡Wide ¡Web ¡Consor%um ¡
  • Standards ¡are ¡knowledge ¡

– Help ¡to ¡drive ¡innova%on ¡ – Like ¡a ¡blueprint ¡that ¡guides ¡people ¡who ¡build ¡things ¡

“An ¡agreed ¡way ¡of ¡doing ¡something” ¡

slide-3
SLIDE 3

Useful ¡for ¡Apache? ¡

  • Some ¡projects ¡have ¡needs ¡addressed ¡by ¡standards ¡

– Example: ¡storing ¡the ¡“where ¡is ¡<something>” ¡informa%on ¡

  • Use ¡of ¡standards ¡help ¡to ¡an%cipate ¡future ¡needs ¡

Metadata ¡ └─ ¡Iden.fica.on ¡info ¡ └─ ¡Extent ¡ └─ ¡Geographic ¡element ¡ ├─ ¡West ¡bound ¡longitude ¡…………………………… ¡179°10ʹ″W ¡ ├─ ¡East ¡bound ¡longitude ¡…………………………… ¡65°W ¡ ├─ ¡South ¡bound ¡la%tude ¡…………………………… ¡17°37ʹ″30″₻N ¡ └─ ¡North ¡bound ¡la%tude ¡…………………………… ¡71°30ʹ″N ¡

Iden.fica.on ¡ Lineage ¡ Maintenance ¡ Content ¡informa%on ¡ Metadata ¡ Distribu%on ¡ Spa%al ¡representa%on ¡ Data ¡quality ¡ Constraints ¡

slide-4
SLIDE 4

Can ¡Apache ¡use ¡that? ¡

Open ¡standards ¡

  • Freely ¡and ¡publicly ¡available ¡
  • Non ¡discriminatory ¡
  • Vendor ¡and ¡data ¡neutral ¡
  • Driven ¡by ¡consensus ¡process ¡

Open ¡source ¡

  • Free ¡redistribu%on ¡
  • Non ¡discriminatory ¡
  • Technology-­‑neutral ¡license ¡
  • Allow ¡deriva%ve ¡work ¡
slide-5
SLIDE 5

From ¡standards ¡to ¡API ¡

UML ¡ XSD ¡files ¡ JAXB ¡compiler ¡ Generated ¡classes ¡

Interna%onal ¡standards ¡ Provided ¡by ¡OGC ¡ Run ¡by ¡each ¡project ¡ Project-­‑specific ¡

Frequently ¡used ¡approach ¡

Interoperability ¡in ¡XML ¡files ¡ Not ¡in ¡Java ¡API ¡

slide-6
SLIDE 6

From ¡standards ¡to ¡API ¡– ¡an ¡issue ¡

XSD ¡is ¡not ¡an ¡accurate ¡representa%on ¡of ¡conceptual ¡models ¡

UML ¡feature ¡ Available ¡in ¡Java ¡ Used ¡in ¡OGC’s ¡XSD ¡ Union ¡ ❌ ¡ ✅ ¡ Covariant ¡type ¡ ✅ ¡ ❌ ¡ Deriving ¡from ¡UML ¡ UML ¡feature ¡ Used ¡in ¡Java ¡ Union ¡ ❌ ¡ Covariant ¡type ¡ ❌ ¡ Deriving ¡from ¡XSD ¡

slide-7
SLIDE 7

Covariant ¡type ¡in ¡UML ¡versus ¡XSD ¡

SingleCRS ¡ ProjectedCRS ¡ Ver%calCRS ¡

Proper.es: ¡ § CoordinateSystem § (other ¡proper%es ¡omi7ed) ¡ Type ¡of ¡inherited ¡“coordinateSystem” ¡ property ¡is ¡narrowed ¡to ¡ ¡CartesianCS ¡ ¡type. ¡ Type ¡of ¡inherited ¡“coordinateSystem” ¡ property ¡is ¡narrowed ¡to ¡ ¡VerticalCS ¡ ¡type. ¡

Example ¡derived ¡from ¡UML ¡of ¡ISO ¡19111 ¡

This ¡is ¡“type ¡covariance”. ¡

slide-8
SLIDE 8

Covariant ¡type ¡in ¡UML ¡versus ¡XSD ¡

SingleCRS ¡ ProjectedCRS ¡ Ver%calCRS ¡

Proper.es: ¡ § CartesianCS § (other ¡proper%es ¡omi7ed) ¡

Same ¡example, ¡but ¡derived ¡from ¡XSD ¡of ¡GML ¡

Proper.es: ¡ § VerticalCS § (other ¡proper%es ¡omi7ed) ¡

No ¡type ¡covariance ¡— ¡each ¡subclass ¡declares ¡the ¡property ¡separately. ¡

slide-9
SLIDE 9

Impact ¡for ¡Java ¡users ¡

Using ¡an ¡API ¡derived ¡manually ¡from ¡UML: ¡

cs = crs.getCoordinateSystem();

Using ¡an ¡API ¡generated ¡from ¡XSD ¡with ¡JAXB: ¡

if (crs instanceof ProjectedCRS) { cs = ((ProjectedCRS) crs).getCartesianCS(); } else if (crs instanceof VerticalCRS) { cs = ((VerticalCRS) crs).getVerticalCS(); } else if (crs instanceof GeodeticCRS) { GeodeticCRS geodeticCRS = (GeodeticCRS) crs; cs = geodeticCRS.getEllipsoidalCS(); if (cs == null) { cs = geodeticCRS.getSphericalCS(); if (cs == null) { cs = geodeticCRS.getCartesianCS(); } } } else if (crs instanceof …) { … }

First ¡case ¡in ¡previous ¡slide ¡ Second ¡case ¡in ¡previous ¡slide ¡

Other ¡case ¡(not ¡shown ¡in ¡previous ¡slide) ¡

Not ¡even ¡the ¡worst ¡case! ¡ 6 ¡other ¡cases… ¡ That’s ¡all! ¡

slide-10
SLIDE 10

Hiding ¡XML ¡complexity ¡

JAXB ¡ Interoperability ¡in ¡Java ¡API ¡ Also ¡in ¡XML ¡files ¡if ¡implementors ¡wish ¡ UML ¡ GeoAPI ¡(Java) ¡ Libraries ¡

Interna%onal ¡standards ¡ Provided ¡by ¡OGC ¡ Project-­‑specific ¡

slide-11
SLIDE 11

Model ¡and ¡sooware ¡stack ¡

h7p://www.opengeospa%al.org/ ¡ h7p://www.geoapi.org/ ¡ h7p://sis.apache.org/ ¡

Interna.onal ¡standards ¡for: ¡

  • Web ¡Map ¡Service ¡(WMS) ¡
  • Web ¡Coverage ¡Service ¡(WCS) ¡
  • Web ¡Feature ¡Service ¡(WFS) ¡
  • Sensor ¡Web ¡Enablement ¡(SWE) ¡ ¡
  • Geography ¡Markup ¡Language ¡(GML) ¡
  • GeoPackage ¡
  • … ¡and ¡many ¡more ¡… ¡

Java ¡interfaces ¡for: ¡

  • Metadata ¡
  • Referencing ¡by ¡coordinates ¡

Par.al ¡implementa.on ¡of: ¡

  • Metadata ¡
  • Referencing ¡by ¡coordinates ¡
  • Well ¡Known ¡Text ¡(1 ¡and ¡2) ¡
  • Geography ¡Markup ¡Language ¡
slide-12
SLIDE 12

ISO ¡19115 ¡ Geographic ¡metadata ¡

Published ¡in ¡2003 ¡ Revised ¡in ¡2014 ¡

slide-13
SLIDE 13

ISO ¡19115 ¡sub-­‑tree ¡sample ¡

Metadata ¡ ├─ ¡Contact ¡ │ ├─ ¡Role ¡(author, ¡collaborator, ¡distributor, ¡sponsor, ¡…) ¡ │ └─ ¡Party ¡(individual ¡or ¡organiza%on) ¡ │ ├─ ¡Name ¡ │ └─ ¡Contact ¡info ¡(phone ¡number, ¡address, ¡email, ¡hours ¡of ¡service…) ¡ ├─ ¡Data ¡iden%fica%on ¡ │ ├─ ¡Abstract ¡ │ ├─ ¡Status ¡(under ¡development, ¡completed, ¡historical ¡archive, ¡…) ¡ │ ├─ ¡Resource ¡maintenance ¡(update ¡frequency, ¡maintenance ¡scope, ¡…) ¡ │ ├─ ¡Descrip%ve ¡keywords ¡ │ ├─ ¡Spa%al ¡representa%on ¡type ¡(grid, ¡vector, ¡triangulated ¡irregular ¡network, ¡video, ¡…) ¡ │ ├─ ¡Topic ¡category ¡(meteorology, ¡health, ¡environment, ¡transporta%on, ¡…) ¡ │ └─ ¡Extent ¡ │ ├─ ¡Geographic ¡element ¡(north ¡bound ¡la%tude, ¡west ¡bound ¡longitude, ¡…) ¡ │ ├─ ¡Ver%cal ¡element ¡ │ └─ ¡Temporal ¡element ¡ ├─ ¡Content ¡info ¡ │ ├─ ¡A7ribute ¡group ¡ │ │ ├─ ¡Content ¡type ¡(physical ¡measurement, ¡thema%c ¡classifica%on, ¡…) ¡ │ │ └─ ¡Range ¡dimension ¡ │ │ ├─ ¡Name ¡ │ │ ├─ ¡Unit ¡ │ │ ├─ ¡Scale ¡factor ¡ │ │ ├─ ¡Offset ¡ │ │ └─ ¡Nominal ¡spa%al ¡resolu%on ¡ │ └─ ¡Cloud ¡cover ¡percentage ¡ └─ ¡Distribu%on ¡info ¡ └─ ¡Distribu%on ¡format ¡

〜500 ¡proper.es ¡

in ¡the ¡full ¡standard ¡

slide-14
SLIDE 14

Some ¡new ¡metadata ¡elements ¡

ISO ¡19115 ¡defined ¡in ¡2003 ¡

  • Band ¡descrip%on ¡was ¡restricted ¡to ¡

electromagne%c ¡spectrum. ¡

  • Horizontal ¡resolu%on ¡only, ¡

in ¡linear ¡units. ¡

ISO ¡19115 ¡revised ¡in ¡2014 ¡

  • Sample ¡dimension ¡generalized ¡to ¡any ¡

physical ¡parameters. ¡

  • Allow ¡resolu%on ¡in ¡angular ¡units. ¡
  • Ver%cal ¡and ¡temporal ¡resolu%on. ¡
slide-15
SLIDE 15

Some ¡metadata ¡changes ¡

2003 ¡version ¡

Responsible ¡party ¡ ├─ ¡Organisa%on ¡name ¡ ├─ ¡Individual ¡name ¡ ├─ ¡Contact ¡info ¡ │ ├─ ¡Telephone ¡ │ │ ├─ ¡Voice │ │ └─ ¡Facsimile │ ├─ ¡Address ¡ │ │ └─ ¡(usual ¡stuff…) │ └─ ¡Online ¡resource ¡ │ └─ ¡(other ¡stuff…) ¡ └─ ¡Role ¡ ¡

2014 ¡version ¡

Responsibility ¡ ├─ ¡Party ¡(Individual ¡or ¡Organisa%on) ¡ │ ├─ ¡Name ¡ │ └─ ¡Contact ¡info ¡ │ ├─ ¡Telephone ¡ │ │ ├─ ¡Number │ │ └─ ¡Number ¡type │ ├─ ¡Address ¡ │ │ └─ ¡(usual ¡stuff…) │ └─ ¡Online ¡resource ¡ │ └─ ¡(other ¡stuff…) ¡ └─ ¡Role ¡

  • Categoriza%on ¡of ¡keywords. ¡
  • Common ¡a7ributes ¡moved ¡for ¡reducing ¡duplica%on. ¡
  • Individual/organisa%on ¡descrip%on ¡reorganised: ¡
slide-16
SLIDE 16

Metadata ¡compa%bility ¡

Responsible ¡party ¡extends ¡Responsibility ¡ ├─ ¡Individual ¡name ¡ ├─ ¡Organisa%on ¡name ¡ ├─ ¡Contact ¡info ¡ ├─ ¡Party ¡(Individual ¡or ¡Organisa%on) ¡ │ ├─ ¡Name ¡ │ └─ ¡Contact ¡info ¡ │ └─ ¡Telephone ¡ │ ├─ ¡Voice │ ├─ ¡Facsimile │ ├─ ¡Number │ └─ ¡Number ¡type └─ ¡Role ¡ ¡

  • Exis.ng ¡XML ¡documents ¡s.ll ¡use ¡the ¡old ¡structure ¡

– European ¡Commission ¡requirement ¡(INSPIRE) ¡for ¡the ¡next ¡5-­‑10 ¡years ¡

  • Need ¡to ¡get/set ¡the ¡same ¡informa%on ¡with ¡old ¡and ¡new ¡ways ¡

– In ¡Apache ¡SIS, ¡deprecated ¡methods ¡delegate ¡to ¡the ¡new ¡methods: ¡

Filter ¡by ¡“Number ¡type” ¡value ¡ Filter ¡by ¡“Party” ¡type ¡

slide-17
SLIDE 17

How ¡to ¡use ¡in ¡Apache ¡SIS ¡

  • ISO ¡19139 ¡parsing: ¡

– Metadata md = (Metadata) Metadata md = (Metadata) XML.unmarshall XML.unmarshall(inputFile); );

– Other ¡methods ¡available ¡for ¡more ¡control. ¡

  • ISO ¡19139 ¡formaVng: ¡

– XML.marshall XML.marshall(md, outputFile); );

– Other ¡methods ¡available ¡for ¡more ¡control. ¡

  • Using: ¡

– Usual ¡JavaBeans ¡ge7ers ¡and ¡se7ers. ¡ – No ¡need ¡to ¡worry ¡about ¡consistency ¡between ¡old ¡and ¡new ¡proper%es. ¡

slide-18
SLIDE 18

ISO ¡19162 ¡

Well-­‑Known ¡Text ¡(WKT) ¡representa.on ¡

  • f ¡coordinate ¡reference ¡systems ¡(CRS) ¡

Published ¡in ¡2015 ¡

slide-19
SLIDE 19

History ¡

  • 199? ¡– ¡WKT ¡1 ¡defini%on ¡

– Specifica.on: ¡OGC ¡Simple ¡Features ¡/ ¡ISO ¡19125 ¡ ❗ Prime ¡meridian ¡and ¡projec%on ¡parameters ¡units ¡unspecified. ¡

  • 2001 ¡– ¡WKT ¡1 ¡clarifica%on ¡and ¡extension ¡

– Specifica.on: ¡OGC ¡Coordinate ¡Transforma%on ¡Services ¡ ❗ In ¡prac%ce, ¡popular ¡soowares ¡have ¡an ¡incompa%ble ¡interpreta%on. ¡

  • 2015 ¡– ¡WKT ¡2 ¡

– Specifica.on: ¡OGC ¡WKT ¡representa%on ¡of ¡CRS ¡/ ¡ISO ¡19162:2015 ¡ – Fix ¡ambigui%es ¡and ¡cover ¡new ¡needs. ¡ – More ¡verbose ¡(6 ¡pages ¡for ¡WKT ¡1 ¡➟ ¡about ¡80 ¡pages ¡for ¡WKT ¡2). ¡ – Apache ¡SIS ¡is ¡among ¡the ¡first ¡implementa%ons. ¡

slide-20
SLIDE 20

CRS ¡a7ached ¡to ¡a ¡vehicle ¡

ENGCRS["A ¡ship-­‑centred ¡CRS", ¡ ¡ ¡EDATUM["Ship ¡reference ¡point", ¡ ¡ ¡ ¡ ¡ANCHOR["Centre ¡of ¡buoyancy"]], ¡ ¡ ¡CS[Cartesian, ¡3], ¡ ¡ ¡ ¡ ¡AXIS["(x)", ¡forward], ¡ ¡ ¡ ¡ ¡AXIS["(y)", ¡starboard], ¡ ¡ ¡ ¡ ¡AXIS["(z)", ¡down], ¡ ¡ ¡ ¡ ¡LENGTHUNIT["metre", ¡1]] ¡ x ¡ z ¡ y ¡ Differences ¡with ¡WKT ¡1: ¡

  • Can ¡specify ¡the ¡anchor ¡(“Centre ¡of ¡buoyancy”) ¡
  • Can ¡specify ¡the ¡coordinate ¡system ¡type ¡(Cartesian, ¡Cylindrical, ¡Spherical, ¡…) ¡
  • New ¡axis ¡direc%ons ¡(forward, ¡starboard, ¡…) ¡
slide-21
SLIDE 21

CRS ¡a7ached ¡to ¡Earth ¡

GEODCRS["WGS ¡84", ¡ ¡ ¡DATUM["World ¡Geode%c ¡System ¡1984", ¡ ¡ ¡ ¡ ¡ELLIPSOID["WGS ¡84", ¡6378137, ¡298.257223563, ¡LENGTHUNIT["metre", ¡1]]], ¡ ¡ ¡CS[ellipsoidal, ¡3], ¡ ¡ ¡ ¡ ¡AXIS["La%tude ¡(P)", ¡north, ¡ANGLEUNIT["degree", ¡0.0174532925199433]], ¡ ¡ ¡ ¡ ¡AXIS["Longitude ¡(L)", ¡east, ¡ANGLEUNIT["degree", ¡0.0174532925199433]], ¡ ¡ ¡ ¡ ¡AXIS["Ellipsoidal ¡height ¡(h)", ¡up, ¡LENGTHUNIT["metre", ¡1]], ¡ ¡ ¡ID["EPSG", ¡4979]] ¡

Differences ¡with ¡WKT ¡1: ¡

  • Can ¡define ¡axes ¡with ¡different ¡units ¡(degrees, ¡metres, ¡…) ¡
  • Can ¡specify ¡the ¡coordinate ¡system ¡type ¡(Ellipsoidal, ¡Cartesian, ¡Spherical, ¡…) ¡
slide-22
SLIDE 22

Projected ¡CRS ¡anatomy ¡

COMPOUNDCRS["NAD83 ¡UTM ¡10 ¡+ ¡NAVD88", ¡ ¡ ¡PROJCRS["NAD83 ¡UTM ¡10", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡BASEGEODCRS["NAD83", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡DATUM["North ¡American ¡Datum ¡1983", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ELLIPSOID["GRS ¡1980", ¡6378137, ¡298.257222101]]] ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡CONVERSION["UTM ¡zone ¡10N", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡METHOD["Transverse ¡Mercator", ¡ID["EPSG", ¡9807]], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡PARAMETER["Longitude ¡of ¡natural ¡origin", ¡-­‑123], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡PARAMETER["Scale ¡factor", ¡0.9996], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡PARAMETER["False ¡eas%ng", ¡500000]], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡CS[Cartesian, ¡2], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡AXIS["Eas%ng ¡(E)", ¡east], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡AXIS["Northing ¡(N)", ¡north], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡LENGTHUNIT["metre", ¡1]], ¡ ¡ ¡ ¡ ¡VERTCRS["NAVD88", ¡ ¡ ¡ ¡ ¡ ¡ ¡VDATUM["North ¡American ¡Ver%cal ¡Datum ¡1988"], ¡ ¡ ¡ ¡ ¡ ¡ ¡CS[ver%cal, ¡1], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡AXIS["gravity-­‑related ¡height ¡(H)", ¡up], ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡LENGTHUNIT["metre", ¡1]]]] ¡ x ¡ y ¡ z ¡

slide-23
SLIDE 23

CRS ¡a7ached ¡to ¡a ¡ground ¡sta%on ¡

ENGCRS["A ¡radar-­‑centred ¡CRS", ¡ ¡ ¡BASEPROJCRS ¡["NTF ¡(Paris) ¡/ ¡Lambert ¡zone ¡II", ¡ ¡ ¡ ¡ ¡BASEGEODCRS["NTF ¡(Paris)"] ¡ ¡ ¡ ¡ ¡ ¡ ¡DATUM["Nouvelle ¡Triangula%on ¡Francaise", ¡ ¡ ¡ ¡ ¡ ¡ ¡... ¡Omi?ng ¡rest ¡of ¡declara@on ¡for ¡simplicity ¡…]], ¡ ¡ ¡ ¡ ¡CONVERSION["Lambert ¡zone ¡II", ¡ ¡ ¡ ¡ ¡ ¡ ¡METHOD["Lambert ¡Conic ¡Conformal ¡(1SP)”], ¡ ¡ ¡ ¡ ¡ ¡ ¡PARAMETER["La%tude ¡of ¡natural ¡origin", ¡52], ¡ ¡ ¡ ¡ ¡ ¡ ¡... ¡Omi?ng ¡rest ¡of ¡declara@on ¡for ¡simplicity ¡…]], ¡ ¡ ¡ ¡ ¡DERIVINGCONVERSION["A ¡map-­‑to-­‑radar ¡conversion", ¡ ¡ ¡ ¡ ¡METHOD["Cartesian ¡to ¡polar"], ¡ ¡ ¡ ¡ ¡PARAMETER[(TBD ¡– ¡not ¡yet ¡a ¡standard ¡method)]], ¡ ¡ ¡CS[polar, ¡2], ¡ ¡ ¡ ¡ ¡AXIS["distance ¡(r)", ¡awayFrom, ¡LENGTHUNIT["metre", ¡1]], ¡ ¡ ¡ ¡ ¡AXIS["bearing ¡(U)", ¡clockwise, ¡BEARING[270], ¡ ¡ ¡ ¡ ¡ ¡ ¡ANGLEUNIT["degree", ¡0.0174532925199433]] ¡ r ¡ U ¡ Link ¡between ¡ sta%on ¡and ¡Earth: ¡

slide-24
SLIDE 24

Coordinate ¡transforma%on ¡

COORDINATEOPERATION["Height ¡A ¡to ¡height ¡B", ¡ ¡ ¡SOURCECRS[…defini%on ¡omi7ed ¡for ¡brevity…], ¡ ¡ ¡TARGETCRS[…defini%on ¡omi7ed ¡for ¡brevity…], ¡ ¡ ¡METHOD["Ver%cal ¡Offset ¡and ¡Slope"], ¡ ¡ ¡PARAMETER[...omi7ed ¡for ¡brevity…], ¡ ¡ ¡INTERPOLATIONCRS[GEODCRS["WGS ¡84", ¡ ¡ ¡ ¡ ¡DATUM["World ¡Geode%c ¡System ¡1984", ¡ ¡ ¡ ¡ ¡ ¡ ¡ELLIPSOID["WGS ¡84", ¡6378137, ¡298.257223563, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡LENGTHUNIT["metre", ¡1]]], ¡ ¡ ¡ ¡ ¡CS[ellipsoidal, ¡2], ¡ ¡ ¡ ¡ ¡ ¡ ¡AXIS["La%tude ¡(P)", ¡north], ¡ ¡ ¡ ¡ ¡ ¡ ¡AXIS["Longitude ¡(L)", ¡east], ¡ ¡ ¡ ¡ ¡ ¡ ¡ANGLEUNIT["degree", ¡0.0174532925199433]]], ¡ ¡ ¡OPERATIONACCURACY[0.1]] ¡

Source ¡CRS ¡ Target ¡CRS ¡ height ¡A ¡ height ¡B ¡

Interpola%on ¡CRS ¡ (new ¡in ¡WKT ¡2) ¡

slide-25
SLIDE 25

Other ¡new ¡features ¡

  • Polar ¡projec%ons ¡
  • Be7er ¡early ¡binding ¡
slide-26
SLIDE 26

Frequently ¡missed ¡rule! ¡

PROJCRS["NTF ¡(Paris) ¡/ ¡Lambert ¡zone ¡II", ¡ ¡ ¡BASEGEODCRS["NTF ¡(Paris)", ¡ ¡ ¡ ¡ ¡DATUM["Nouvelle ¡Triangula%on ¡Francaise", ¡ ¡ ¡ ¡ ¡ ¡ ¡ELLIPSOID["Clarke ¡1880 ¡(IGN)", ¡6378249.2, ¡293.4660212936269]], ¡ ¡ ¡ ¡ ¡ ¡ ¡PRIMEM["Paris", ¡2.5969213], ¡ ¡ ¡ ¡ ¡ANGLEUNIT["grade", ¡0.015707963267948967]] ¡ ¡ ¡CONVERSION["Lambert ¡zone ¡II", ¡ ¡ ¡ ¡ ¡METHOD["Lambert ¡Conic ¡Conformal ¡(1SP)", ¡ID["EPSG", ¡9801]], ¡ ¡ ¡ ¡ ¡PARAMETER["La%tude ¡of ¡natural ¡origin", ¡52], ¡ ¡ ¡ ¡ ¡PARAMETER["Longitude ¡of ¡natural ¡origin", ¡0], ¡ ¡ ¡ ¡ ¡PARAMETER["Scale ¡factor ¡at ¡natural ¡origin", ¡0.99987742], ¡ ¡ ¡ ¡ ¡PARAMETER["False ¡eas%ng", ¡600000], ¡ ¡ ¡ ¡ ¡PARAMETER["False ¡northing", ¡2200000]], ¡ ¡ ¡CS[Cartesian, ¡2], ¡ ¡ ¡ ¡ ¡AXIS["Eas%ng ¡(E)", ¡east], ¡ ¡ ¡ ¡ ¡AXIS["Northing ¡(N)", ¡north], ¡ ¡ ¡ ¡ ¡LENGTHUNIT["metre", ¡1]] ¡

Value ¡in ¡ grades! ¡

Because ¡

  • f ¡this: ¡
slide-27
SLIDE 27

How ¡to ¡use ¡in ¡Apache ¡SIS ¡

  • ISO ¡19162 ¡parsing: ¡

– CoordinateReferenceSystem CoordinateReferenceSystem myCRS = = CRS.fromWKT CRS.fromWKT(wkt); );

– Other ¡methods ¡available ¡for ¡more ¡control ¡

  • Can ¡be ¡instructed ¡to ¡parse ¡units ¡in ¡WKT ¡1 ¡string ¡in ¡the ¡“non-­‑conform ¡way”. ¡
  • ISO ¡19162 ¡formaVng: ¡

– String String wkt = = myCRS.toWKT .toWKT(); ();

– Other ¡methods ¡available ¡for ¡more ¡control. ¡

  • Using: ¡

– Usual ¡JavaBeans ¡ge7ers. ¡

– MathTransform MathTransform ¡for ¡performing ¡coordinate ¡transforma%ons. ¡