{"id":9813,"date":"2026-03-06T09:51:29","date_gmt":"2026-03-06T08:51:29","guid":{"rendered":"https:\/\/www.geomatys.com\/?p=9813"},"modified":"2026-03-09T14:06:17","modified_gmt":"2026-03-09T13:06:17","slug":"dggrs-part1","status":"publish","type":"post","link":"https:\/\/www.geomatys.com\/en\/2026\/03\/06\/dggrs-part1\/","title":{"rendered":"Discrete Global Grid Reference System (Part.1)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"9813\" class=\"elementor elementor-9813\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-17a4ec82 elementor-section-full_width elementor-section-height-default elementor-section-height-default exad-glass-effect-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no exad-sticky-section-no\" data-eae-slider=\"31947\" data-id=\"17a4ec82\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6efb442d exad-glass-effect-no exad-sticky-section-no\" data-eae-slider=\"78145\" data-id=\"6efb442d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3d8f4d7d exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-shortcode\" data-id=\"3d8f4d7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"8583\" class=\"elementor elementor-8583\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-ed073a7 elementor-section-full_width elementor-section-height-default elementor-section-height-default exad-glass-effect-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-equal-height-no exad-sticky-section-no\" data-eae-slider=\"96689\" data-id=\"ed073a7\" data-element_type=\"section\" data-e-type=\"section\" id=\"header\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-7ab1d90 exad-glass-effect-no exad-sticky-section-no\" data-eae-slider=\"25433\" data-id=\"7ab1d90\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a2d436c exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"a2d436c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/geomatys.com\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"58\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?fit=300%2C58&amp;ssl=1\" class=\"attachment-medium size-medium wp-image-3137\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?w=982&amp;ssl=1 982w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?resize=300%2C58&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?resize=768%2C148&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?w=188&amp;ssl=1 188w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-53d36e8 exad-glass-effect-no exad-sticky-section-no\" data-eae-slider=\"97346\" data-id=\"53d36e8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-49481ed wpr-main-menu-align-center wpr-main-menu-align--tablet_extraleft wpr-main-menu-align--tabletleft wpr-main-menu-align--mobileleft wpr-pointer-underline wpr-pointer-line-fx wpr-pointer-fx-fade wpr-sub-icon-caret-down wpr-sub-menu-fx-fade wpr-nav-menu-bp-tablet wpr-mobile-menu-display-dropdown wpr-mobile-menu-full-width wpr-mobile-toggle-v1 wpr-sub-divider-yes wpr-mobile-divider-yes exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-wpr-mega-menu\" data-id=\"49481ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;menu_layout&quot;:&quot;horizontal&quot;}\" data-widget_type=\"wpr-mega-menu.default\">\n\t\t\t\t\t<nav class=\"wpr-nav-menu-container wpr-mega-menu-container wpr-nav-menu-horizontal\" data-trigger=\"hover\"><ul id=\"menu-1-49481ed\" class=\"wpr-nav-menu wpr-mega-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-7251\"><a href=\"https:\/\/www.geomatys.com\/en\/solutions-logicielles\/\" class=\"wpr-menu-item wpr-pointer-item\"><span>Solutions Logicielles<\/span><i class=\"wpr-sub-icon fas\" aria-hidden=\"true\"><\/i><\/a>\n<ul  class=\"sub-menu wpr-sub-menu\">\n\t<li class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-8212\"><a target=\"_blank\" href=\"http:\/\/www.examind.com?utm_source=geomatys\" class=\"wpr-sub-menu-item\"><span>Suite Examind<\/span><\/a>\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7250\"><a href=\"https:\/\/www.geomatys.com\/en\/apache-sis\/\" class=\"wpr-sub-menu-item\"><span>Apache-SIS<\/span><\/a><\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-7253\"><a href=\"https:\/\/www.geomatys.com\/en\/solutions-metier\/\" class=\"wpr-menu-item wpr-pointer-item\"><span>Solutions m\u00e9tier<\/span><i class=\"wpr-sub-icon fas\" aria-hidden=\"true\"><\/i><\/a>\n<ul  class=\"sub-menu wpr-sub-menu\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-9571\"><a href=\"https:\/\/www.geomatys.com\/en\/vigiearth\/\" class=\"wpr-sub-menu-item\"><span>VigiEarth<\/span><\/a>\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7254\"><a href=\"https:\/\/www.geomatys.com\/en\/solutions-metier\/aqualit\/\" class=\"wpr-sub-menu-item\"><span>AQUALIT<\/span><\/a>\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7830\"><a href=\"https:\/\/www.geomatys.com\/en\/shoreint\/\" class=\"wpr-sub-menu-item\"><span>ShoreInt &#8211; OPAT<\/span><\/a>\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7256\"><a href=\"https:\/\/www.geomatys.com\/en\/solutions-metier\/epiwise\/\" class=\"wpr-sub-menu-item\"><span>EpiWise<\/span><\/a><\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7259\"><a href=\"https:\/\/www.geomatys.com\/en\/qui-sommes-nous\/\" class=\"wpr-menu-item wpr-pointer-item\"><span>Qui sommes nous ?<\/span><\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-8317\"><a href=\"https:\/\/www.geomatys.com\/en\/rse\/\" class=\"wpr-menu-item wpr-pointer-item\"><span>RSE<\/span><\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7258\"><a href=\"https:\/\/www.geomatys.com\/en\/contact\/\" class=\"wpr-menu-item wpr-pointer-item\"><span>Contact<\/span><\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-8286\"><a href=\"https:\/\/www.geomatys.com\/en\/blog\/\" class=\"wpr-menu-item wpr-pointer-item\"><span>Blog<\/span><\/a><\/li>\n<li class=\"trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher current-language-menu-item menu-item-8210\"><a href=\"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts\/9813#TRPLINKPROCESSED\" class=\"wpr-menu-item wpr-pointer-item\"><span><span data-no-translation><img data-recalc-dims=\"1\" decoding=\"async\" class=\"trp-flag-image\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/images\/flags\/fr_FR.png?resize=18%2C12&#038;ssl=1\" width=\"18\" height=\"12\" alt=\"fr_FR\" title=\"French\"><span class=\"trp-ls-language-name\">FR<\/span><\/span><\/span><\/a><\/li>\n<\/ul><\/nav><nav class=\"wpr-mobile-nav-menu-container\"><div class=\"wpr-mobile-toggle-wrap\"><div class=\"wpr-mobile-toggle\"><span class=\"wpr-mobile-toggle-line\"><\/span><span class=\"wpr-mobile-toggle-line\"><\/span><span class=\"wpr-mobile-toggle-line\"><\/span><\/div><\/div><div class=\"wpr-mobile-mega-menu-wrap \" toggle-backface=\"\"><ul id=\"mobile-menu-2-49481ed\" class=\"wpr-mobile-nav-menu wpr-mobile-mega-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-7251\"><a href=\"https:\/\/www.geomatys.com\/en\/solutions-logicielles\/\" class=\"wpr-mobile-menu-item\">Solutions Logicielles<i class=\"wpr-mobile-sub-icon\"><\/i><\/a>\n<ul  class=\"sub-menu wpr-mobile-sub-menu\">\n\t<li class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-8212\"><a target=\"_blank\" href=\"http:\/\/www.examind.com?utm_source=geomatys\" class=\"wpr-mobile-sub-menu-item\">Suite Examind<\/a>\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7250\"><a href=\"https:\/\/www.geomatys.com\/en\/apache-sis\/\" class=\"wpr-mobile-sub-menu-item\">Apache-SIS<\/a><\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-7253\"><a href=\"https:\/\/www.geomatys.com\/en\/solutions-metier\/\" class=\"wpr-mobile-menu-item\">Solutions m\u00e9tier<i class=\"wpr-mobile-sub-icon\"><\/i><\/a>\n<ul  class=\"sub-menu wpr-mobile-sub-menu\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-9571\"><a href=\"https:\/\/www.geomatys.com\/en\/vigiearth\/\" class=\"wpr-mobile-sub-menu-item\">VigiEarth<\/a>\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7254\"><a href=\"https:\/\/www.geomatys.com\/en\/solutions-metier\/aqualit\/\" class=\"wpr-mobile-sub-menu-item\">AQUALIT<\/a>\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7830\"><a href=\"https:\/\/www.geomatys.com\/en\/shoreint\/\" class=\"wpr-mobile-sub-menu-item\">ShoreInt &#8211; OPAT<\/a>\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7256\"><a href=\"https:\/\/www.geomatys.com\/en\/solutions-metier\/epiwise\/\" class=\"wpr-mobile-sub-menu-item\">EpiWise<\/a><\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7259\"><a href=\"https:\/\/www.geomatys.com\/en\/qui-sommes-nous\/\" class=\"wpr-mobile-menu-item\">Qui sommes nous ?<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-8317\"><a href=\"https:\/\/www.geomatys.com\/en\/rse\/\" class=\"wpr-mobile-menu-item\">RSE<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7258\"><a href=\"https:\/\/www.geomatys.com\/en\/contact\/\" class=\"wpr-mobile-menu-item\">Contact<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-8286\"><a href=\"https:\/\/www.geomatys.com\/en\/blog\/\" class=\"wpr-mobile-menu-item\">Blog<\/a><\/li>\n<li class=\"trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher current-language-menu-item menu-item-8210\"><a href=\"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts\/9813#TRPLINKPROCESSED\" class=\"wpr-mobile-menu-item\"><span data-no-translation><img data-recalc-dims=\"1\" decoding=\"async\" class=\"trp-flag-image\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/images\/flags\/fr_FR.png?resize=18%2C12&#038;ssl=1\" width=\"18\" height=\"12\" alt=\"fr_FR\" title=\"French\"><span class=\"trp-ls-language-name\">FR<\/span><\/span><\/a><\/li>\n<\/ul><\/div><\/nav>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-5cd25c2 exad-glass-effect-no exad-sticky-section-no\" data-eae-slider=\"8648\" data-id=\"5cd25c2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-583ebb1a e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"60743\" data-id=\"583ebb1a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3717239 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"3717239\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Discrete Global Grid Reference System (Part 1)<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-32b18d4 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"32b18d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t<style>.elementor-element-32b18d4{display:none !important}<\/style>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-6028767d e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"45702\" data-id=\"6028767d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c208fcb wpr-post-info-align-left exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-wpr-post-info\" data-id=\"4c208fcb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wpr-post-info.default\">\n\t\t\t\t\t<ul class=\"wpr-post-info wpr-post-info-horizontal\"><li class=\"wpr-post-info-date\"><span>06\/03\/2026<\/span><\/li><li class=\"wpr-post-info-author\"><span>Johann S.<\/span><\/li><\/ul>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-12847989 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"76222\" data-id=\"12847989\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8a02f00 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"8a02f00\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrsimg.png?fit=256%2C256&amp;ssl=1\" class=\"attachment-large size-large wp-image-9819\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrsimg.png?w=256&amp;ssl=1 256w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrsimg.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrsimg.png?resize=12%2C12&amp;ssl=1 12w\" sizes=\"(max-width: 256px) 100vw, 256px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c77246c elementor-widget__width-initial elementor-widget-mobile__width-inherit exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"6c77246c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In 2024, Geomatys started working on DGGRS with our existing libraries. In 2025 we joined the <strong>OGC AI-DGGS for Disaster Management Pilot<\/strong>.<\/p><p>\u00a0As a result of this pilot our libraries made a step forward, or more exactly a huge jump, in DGGRS. With lots of new things to play with.<\/p><p>\u00a0Let\u2019s see one of the results of this work.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-ad25832 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"87773\" data-id=\"ad25832\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d0c24f exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"2d0c24f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">DGGRS Java API\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9443f25 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"9443f25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In the current Java ecosystem you can find several DGGRS libraries, like S2 (<a href=\"https:\/\/s2geometry.io\">https:\/\/s2geometry.io<\/a>), H3 (<a href=\"https:\/\/h3geo.org\">https:\/\/h3geo.org<\/a>), CDS-Healpix (<a href=\"https:\/\/github.com\/cds-astro\/cds-healpix-java\">https:\/\/github.com\/cds-astro\/cds-healpix-java<\/a>). But all of them have a different API and very different capabilities.<\/p><p>\u00a0<\/p><p>From our very beginning, Geomatys has been working on OGC&rsquo;s GeoAPI, a set of programming interfaces for numerous ISO and OGC standards related to GIS, and naturally we continue this effort by creating new interfaces to map DGGRSes but also to fit them into the existing GIS world.<\/p><p>\u00a0<\/p><p>Making a DGGRS API required a bit of effort, but it was nonetheless a reasonable task.\u00a0Making it fluently fit with Coordinate, Temporal, and Elevation Reference Systems as well as Metadata, Geometry, and Identifier Based Reference systems was a more complex task which required a deep understanding of each of these models.<\/p><p>\u00a0<\/p><p>\u00a0The API presented here is our preliminary work for the future integration of DGGRSes into Apache-SIS and later on in OGC GeoAPI.<br \/>\u00a0The following UML diagrams hare simplified and slightly outdated versions of the existing code, but defines the core model of this new API<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-c075ca1 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"12666\" data-id=\"c075ca1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-82a08b6 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"82a08b6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">1. Overview<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-abb9202 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"abb9202\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>After reading and processing the different DGGRS documents and existing ISO Reference System specifications, we noted one major change with the Topic 21 \u2014 Discrete Global Grid Systems document.<\/p><p>\u00a0<\/p><p>\u00a0<\/p><p>The decision was made to make DGGRS extends ReferenceByIdentifiers (ISO 19112) instead of CoordinateReferenceSystem (ISO 19111). This choice did not have any impact on the OGC DGGRS API but has fundamental differences when using it in code.<\/p><p>The reasons behind this choice are :<\/p><p>\u00a0<\/p><p>\u00a0<\/p><ul><li>Zone IDs are 64-bits integers, not floating points values. All CRS APIs (SIS, PROJ, \u2026) expect floating points values, at best 64-bits, so there is not a direct mapping between float64 and int64.<\/li><li>Zone ID may eceed 64-Bits (for 3D, 4D or more) or may be text<\/li><li>Zones have a \u2018depth\u2019 or \u2018level\u2019 information, this property is correctly defined in ReferenceByIdentifiers, but idoes not exist in CRS.<br \/><br \/><\/li><\/ul><p>Zones are areas\/volumes, not exact positions, which matches ReferenceByIdentifiers locations<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-5381e30 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"40849\" data-id=\"5381e30\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cf4542e exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"cf4542e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">2. Packages<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-7ca6a66 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-child\" data-eae-slider=\"36575\" data-id=\"7ca6a66\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ddc9203 elementor-widget__width-initial elementor-widget-mobile__width-inherit exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"ddc9203\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The created API is composed of two new core packages.<\/p><ul><li><strong>ReferenceSystem (RS)<\/strong> : contains a new API for Compound Reference Systems. Allowing to aggregate DGGRS with additional dimensions, such as time (the temporal dimension) and height above the surface (the vertical dimension).<\/li><li><strong>DiscreteGlobalGridReferenceSystem (DGGRS) :<\/strong> contains the new DGGRS API.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1164617 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"1164617\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"227\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/Apache-SIS.png?fit=689%2C227&amp;ssl=1\" class=\"attachment-large size-large wp-image-9814\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/Apache-SIS.png?w=689&amp;ssl=1 689w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/Apache-SIS.png?resize=300%2C99&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/Apache-SIS.png?resize=18%2C6&amp;ssl=1 18w\" sizes=\"(max-width: 689px) 100vw, 689px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-6a29620 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"50126\" data-id=\"6a29620\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a88cab exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"5a88cab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">3. Discrete Global Grid Reference System package\n<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d4fc58 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"2d4fc58\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The UML below is the result from aggregation and factorization of the different API which exist in : OGC DGGRS API Topic 21, H3geo, S2geometry, DGGAL and Healpix CDS.<\/p><p>\u00a0I won\u2019t go in the details here since there are a lot of classes and methods, but feel free to check the code for more informations.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-99235c7 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"99235c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"1024\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrs.png?fit=709%2C1024&amp;ssl=1\" class=\"attachment-large size-large wp-image-9820\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrs.png?w=712&amp;ssl=1 712w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrs.png?resize=208%2C300&amp;ssl=1 208w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrs.png?resize=709%2C1024&amp;ssl=1 709w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/dggrs.png?resize=8%2C12&amp;ssl=1 8w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-69948d8 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"56779\" data-id=\"69948d8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-61b604a exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"61b604a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">4. Reference System package<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ffc9ba6 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"ffc9ba6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Since all the DGGRSes that were used in the pilot where limited to 2D and most that exist are limited to 2D. We needed a solution for combining it with additional dimensions to support time and elevation.<\/p><p>\u00a0<\/p><p><span lang=\"en-US\">This resulted in us creating an API composed of three classes: <\/span><span lang=\"en-US\"><b>Code<\/b><\/span><span lang=\"en-US\">, <\/span><span lang=\"en-US\"><b>CompoundRS, <\/b><\/span><span lang=\"en-US\">and <\/span><span lang=\"en-US\"><b>CodeOperation<\/b><\/span><span lang=\"en-US\">, which<\/span><b> <\/b><span lang=\"en-US\">share the same organization as <\/span><span lang=\"en-US\"><b>DirectPosition<\/b><\/span><span lang=\"en-US\">, <\/span><span lang=\"en-US\"><b>CoordinateReferenceSystem, <\/b><\/span><span lang=\"en-US\">and <\/span><span lang=\"en-US\"><b>Operation<\/b><\/span><span lang=\"en-US\">.<\/span><\/p><p>\u00a0<\/p><p>They extends the scope of transformation to all kind of Reference systems, whether they use numerical or textual indexing. Allowing transformation for DGGRS, MGRS, GeoHash, OLS or any kind of code or coordinate base systems.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-95a57c1 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"95a57c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"191\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/referenceSystem.png?fit=800%2C191&amp;ssl=1\" class=\"attachment-large size-large wp-image-9821\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/referenceSystem.png?w=1110&amp;ssl=1 1110w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/referenceSystem.png?resize=300%2C72&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/referenceSystem.png?resize=1024%2C245&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/referenceSystem.png?resize=768%2C184&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/referenceSystem.png?resize=18%2C4&amp;ssl=1 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3083f54 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"3083f54\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The API is simple, yet very powerful. It goes way beyond DGGRS.<\/p><p>\u00a0For example we often say \u2018meet me at {address} at {time}\u2019.<br \/>\u00a0This can be translated to a <strong>Code\u00a0 <\/strong>object with two components <strong>[{address}, {time}] <\/strong>and a Compound Reference System composed of your local country postal code system and a classic temporal reference system.<br \/>\u00a0Then you ask the API to give you the <strong>CodeOperation <\/strong>to transform this to a common coordinate reference system, like Mercator EPSG:3395, and there you go.<\/p><p>\u00a0And this works with any kind of reference system combination, MGRS, EPSG, IAU, DGGRS, postal codes..<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-f060f41 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"75315\" data-id=\"f060f41\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5cd0294 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"5cd0294\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">5. Java Examples<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa25497 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"aa25497\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In the end, what does this look like for a developer?<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-907c54b exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-eael-code-snippet\" data-id=\"907c54b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"java\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-907c54b\" id=\"eael-code-snippet-907c54b\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-java\"><code>\/\/pick a DGGS implementation : A5, H3, Healpix, ...\r\nfinal DiscreteGlobalGridReferenceSystem dggrs = DiscreteGlobalGridReferenceSystems.forCode(\u00ab\u00a0H3\u00a0\u00bb)\u00a0;\r\n\r\n\/\/create a coder instance to perform queries\r\nfinal Coder coder = dggrs.createCoder();\r\n\r\n\/\/get a zone for a location\r\nfinal String hash = coder.encode(new DirectPosition2D(12.345, 67.89));\r\n\r\n\/\/get a zone for a known identifier\r\nfinal Zone zone  = coder.decode(&quot;811fbffffffffff&quot;);\r\n\r\n\/\/extract various information from the zone\r\nfinal DirectPosition position = zone.getPosition(); \/\/centroid\r\nfinal Collection&lt;? extends Zone&gt; children = zone.getChildren();\r\nfinal Collection&lt;? extends Zone&gt; neighbors = zone.getNeighbors();\r\nfinal Collection&lt;? extends Zone&gt; parents = zone.getParents();\r\nfinal Envelope envelope = zone.getEnvelope();\r\nfinal GeographicExtent geometry = zone.getGeographicExtent();\r\nfinal Double areaMetersSquare = zone.getAreaMetersSquare();\r\n<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"has_eae_slider elementor-element elementor-element-06c4a33 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-eae-slider=\"9179\" data-id=\"06c4a33\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d646033 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"d646033\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">6. Next part<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a480dd1 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"a480dd1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In the next DGGRS blog post we will see the OGCAPI DGGRS implementation in the Examind-Community server.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-1134b62d elementor-section-full_width elementor-section-height-default elementor-section-height-default exad-glass-effect-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no exad-sticky-section-no\" data-eae-slider=\"1487\" data-id=\"1134b62d\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3ed4bc0 exad-glass-effect-no exad-sticky-section-no\" data-eae-slider=\"87084\" data-id=\"3ed4bc0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-60ed232d exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-shortcode\" data-id=\"60ed232d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"5276\" class=\"elementor elementor-5276\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-267b5fb elementor-section-boxed elementor-section-height-default elementor-section-height-default exad-glass-effect-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no exad-sticky-section-no\" data-eae-slider=\"75586\" data-id=\"267b5fb\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-8dac029 exad-glass-effect-no exad-sticky-section-no\" data-eae-slider=\"54766\" data-id=\"8dac029\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ff0bb56 hfe-nav-menu__align-center hfe-nav-menu__breakpoint-mobile hfe-submenu-icon-arrow hfe-link-redirect-child exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-navigation-menu\" data-id=\"ff0bb56\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;padding_vertical_menu_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:7,&quot;sizes&quot;:[]},&quot;menu_space_between&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;padding_horizontal_menu_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;padding_horizontal_menu_item_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_menu_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_menu_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_space_between_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_space_between_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_space_between_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;dropdown_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;dropdown_border_radius_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;dropdown_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;dropdown_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;padding_horizontal_dropdown_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"navigation-menu.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"hfe-nav-menu hfe-layout-vertical hfe-nav-menu-layout vertical\" data-layout=\"vertical\">\n\t\t\t\t<div role=\"button\" class=\"hfe-nav-menu__toggle elementor-clickable\" tabindex=\"0\" aria-label=\"Menu Toggle\">\n\t\t\t\t\t<span class=\"screen-reader-text\">Menu<\/span>\n\t\t\t\t\t<div class=\"hfe-nav-menu-icon\">\n\t\t\t\t\t\t<i aria-hidden=\"true\"  class=\"fas fa-align-justify\"><\/i>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<nav class=\"hfe-nav-menu__layout-vertical hfe-nav-menu__submenu-arrow\" data-toggle-icon=\"&lt;i aria-hidden=&quot;true&quot; tabindex=&quot;0&quot; class=&quot;fas fa-align-justify&quot;&gt;&lt;\/i&gt;\" data-close-icon=\"&lt;i aria-hidden=&quot;true&quot; tabindex=&quot;0&quot; class=&quot;far fa-window-close&quot;&gt;&lt;\/i&gt;\" data-full-width=\"yes\">\n\t\t\t\t\t<ul id=\"menu-1-ff0bb56\" class=\"hfe-nav-menu\"><li id=\"menu-item-624\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy parent hfe-creative-menu\"><a href=\"https:\/\/www.geomatys.com\/en\/privacy-policy\/\" class = \"hfe-menu-item\">Privacy Policy<\/a><\/li>\n<li id=\"menu-item-4761\" class=\"menu-item menu-item-type-post_type menu-item-object-page parent hfe-creative-menu\"><a href=\"https:\/\/www.geomatys.com\/en\/mentions-legales\/\" class = \"hfe-menu-item\">Mentions l\u00e9gales<\/a><\/li>\n<li id=\"menu-item-625\" class=\"menu-item menu-item-type-custom menu-item-object-custom parent hfe-creative-menu\"><a href=\"#header\" class = \"hfe-menu-item\">Retour en haut<\/a><\/li>\n<\/ul> \n\t\t\t\t<\/nav>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-8da774f exad-glass-effect-no exad-sticky-section-no\" data-eae-slider=\"71133\" data-id=\"8da774f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-654cb58 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"654cb58\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/geomatys.com\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"58\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?fit=300%2C58&amp;ssl=1\" class=\"attachment-medium size-medium wp-image-3137\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?w=982&amp;ssl=1 982w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?resize=300%2C58&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?resize=768%2C148&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/01\/logo-geomatys.png?w=188&amp;ssl=1 188w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22e6314 elementor-shape-rounded elementor-grid-0 e-grid-align-center exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-social-icons\" data-id=\"22e6314\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"social-icons.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-social-icons-wrapper elementor-grid\" role=\"list\">\n\t\t\t\t\t\t\t<span class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t<a class=\"elementor-icon elementor-social-icon elementor-social-icon-linkedin elementor-repeater-item-69ef169\" href=\"https:\/\/www.linkedin.com\/company\/geomatys\/\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-screen-only\">Linkedin<\/span>\n\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-linkedin\"><\/i>\t\t\t\t\t<\/a>\n\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<span class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t<a class=\"elementor-icon elementor-social-icon elementor-social-icon-twitter elementor-repeater-item-ae824dc\" href=\"https:\/\/twitter.com\/Geomatys\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-screen-only\">Twitter<\/span>\n\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-twitter\"><\/i>\t\t\t\t\t<\/a>\n\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<span class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t<a class=\"elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-c0981b6\" href=\"https:\/\/www.youtube.com\/channel\/UCQK9UM2EbzdlKLqnq3ogJBA\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-screen-only\">Youtube<\/span>\n\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-youtube\"><\/i>\t\t\t\t\t<\/a>\n\t\t\t\t<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Discrete Global Grid Reference System (Part 1) Cet article n&rsquo;est pour l&rsquo;instant disponible qu&rsquo;en anglais. 06\/03\/2026 Johann S. In 2024, Geomatys started working on DGGRS with our existing libraries. In 2025 we joined the OGC AI-DGGS for Disaster Management Pilot. \u00a0As a result of this pilot our libraries made a step forward, or more exactly a huge jump, in DGGRS. With lots of new things to play with. \u00a0Let\u2019s see one of the results of this work.\u00a0 DGGRS Java API In the current Java ecosystem you can find several DGGRS libraries, like S2 (https:\/\/s2geometry.io), H3 (https:\/\/h3geo.org), CDS-Healpix (https:\/\/github.com\/cds-astro\/cds-healpix-java). But all of them have a different API and very different capabilities. \u00a0 From our very beginning, Geomatys has been working on OGC&rsquo;s GeoAPI, a set of programming interfaces for numerous ISO and OGC standards related to GIS, and naturally we continue this effort by creating new interfaces to map DGGRSes but also to fit them into the existing GIS world. \u00a0 Making a DGGRS API required a bit of effort, but it was nonetheless a reasonable task.\u00a0Making it fluently fit with Coordinate, Temporal, and Elevation Reference Systems as well as Metadata, Geometry, and Identifier Based Reference systems was a more complex task which required a deep understanding of each of these models. \u00a0 \u00a0The API presented here is our preliminary work for the future integration of DGGRSes into Apache-SIS and later on in OGC GeoAPI.\u00a0The following UML diagrams hare simplified and slightly outdated versions of the existing code, but defines the core model of this new API 1. Overview After reading and processing the different DGGRS documents and existing ISO Reference System specifications, we noted one major change with the Topic 21 \u2014 Discrete Global Grid Systems document. \u00a0 \u00a0 The decision was made to make DGGRS extends ReferenceByIdentifiers (ISO 19112) instead of CoordinateReferenceSystem (ISO 19111). This choice did not have any impact on the OGC DGGRS API but has fundamental differences when using it in code. The reasons behind this choice are : \u00a0 \u00a0 Zone IDs are 64-bits integers, not floating points values. All CRS APIs (SIS, PROJ, \u2026) expect floating points values, at best 64-bits, so there is not a direct mapping between float64 and int64. Zone ID may eceed 64-Bits (for 3D, 4D or more) or may be text Zones have a \u2018depth\u2019 or \u2018level\u2019 information, this property is correctly defined in ReferenceByIdentifiers, but idoes not exist in CRS. Zones are areas\/volumes, not exact positions, which matches ReferenceByIdentifiers locations 2. Packages The created API is composed of two new core packages. ReferenceSystem (RS) : contains a new API for Compound Reference Systems. Allowing to aggregate DGGRS with additional dimensions, such as time (the temporal dimension) and height above the surface (the vertical dimension). DiscreteGlobalGridReferenceSystem (DGGRS) : contains the new DGGRS API. 3. Discrete Global Grid Reference System package The UML below is the result from aggregation and factorization of the different API which exist in : OGC DGGRS API Topic 21, H3geo, S2geometry, DGGAL and Healpix CDS. \u00a0I won\u2019t go in the details here since there are a lot of classes and methods, but feel free to check the code for more informations. 4. Reference System package Since all the DGGRSes that were used in the pilot where limited to 2D and most that exist are limited to 2D. We needed a solution for combining it with additional dimensions to support time and elevation. \u00a0 This resulted in us creating an API composed of three classes: Code, CompoundRS, and CodeOperation, which share the same organization as DirectPosition, CoordinateReferenceSystem, and Operation. \u00a0 They extends the scope of transformation to all kind of Reference systems, whether they use numerical or textual indexing. Allowing transformation for DGGRS, MGRS, GeoHash, OLS or any kind of code or coordinate base systems.\u00a0 The API is simple, yet very powerful. It goes way beyond DGGRS. \u00a0For example we often say \u2018meet me at {address} at {time}\u2019.\u00a0This can be translated to a Code\u00a0 object with two components [{address}, {time}] and a Compound Reference System composed of your local country postal code system and a classic temporal reference system.\u00a0Then you ask the API to give you the CodeOperation to transform this to a common coordinate reference system, like Mercator EPSG:3395, and there you go. \u00a0And this works with any kind of reference system combination, MGRS, EPSG, IAU, DGGRS, postal codes.. 5. Java Examples In the end, what does this look like for a developer? \/\/pick a DGGS implementation : A5, H3, Healpix, &#8230; final DiscreteGlobalGridReferenceSystem dggrs = DiscreteGlobalGridReferenceSystems.forCode(\u00ab\u00a0H3\u00a0\u00bb)\u00a0; \/\/create a coder instance to perform queries final Coder coder = dggrs.createCoder(); \/\/get a zone for a location final String hash = coder.encode(new DirectPosition2D(12.345, 67.89)); \/\/get a zone for a known identifier final Zone zone = coder.decode(&quot;811fbffffffffff&quot;); \/\/extract various information from the zone final DirectPosition position = zone.getPosition(); \/\/centroid final Collection&lt;? extends Zone&gt; children = zone.getChildren(); final Collection&lt;? extends Zone&gt; neighbors = zone.getNeighbors(); final Collection&lt;? extends Zone&gt; parents = zone.getParents(); final Envelope envelope = zone.getEnvelope(); final GeographicExtent geometry = zone.getGeographicExtent(); final Double areaMetersSquare = zone.getAreaMetersSquare(); 6. Next part In the next DGGRS blog post we will see the OGCAPI DGGRS implementation in the Examind-Community server.<\/p>\n","protected":false},"author":11,"featured_media":9814,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_umich_oidc_access":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9813","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-actus"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2026\/03\/Apache-SIS.png?fit=689%2C227&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts\/9813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/comments?post=9813"}],"version-history":[{"count":28,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts\/9813\/revisions"}],"predecessor-version":[{"id":9846,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts\/9813\/revisions\/9846"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/media\/9814"}],"wp:attachment":[{"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/media?parent=9813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/categories?post=9813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/tags?post=9813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}