Skip to content

How to produce Z7 hex64 indices? #92

@jerstlouis

Description

@jerstlouis

I've tried:

output_cell_label_type OUTPUT_ADDRESS_TYPE
output_address_type HIERNDX
output_hier_ndx_system Z7
output_hier_ndx_form int64

But that seems to produce the same result as output_hier_ndx_form digit_string.

In the IGEO7 paper, the description of the 64-bit integer Z7 format is ambiguous, with no mention of endianness or of Least / Most Significant Bits:

The first four bits of the integer indicate the base cell number (0 to 11), and the remaining 60 bits encode the digits for each resolution, using 3 bits per resolution.

Would the following bit organization (from Google AI) be correct in implying big-endian order, meaning that the padding 7/f s are the LSBs? So that 0234605201064053664 would be 0x2730A811A0AF69FF?

The 64-bit integer index for the DGGRID Z7 system is organized in big-endian bit order, from most significant bit (MSB) to least significant bit (LSB). The index is a hierarchy-based identifier composed of two main parts:
Base Cell ID: The first four bits (bits 63 through 60) identify one of the 12 base cells (0 to 11) of the initial icosahedral division of the globe.
Hierarchical Digits: The remaining 60 bits (bits 59 through 0) encode the sub-cell indices, with 3 bits per level of refinement (aperture 7). Each 3-bit digit specifies which of the seven child cells to navigate to at the next resolution level. A value of 7 for a refinement digit is used to signify that the cell's resolution is less than the maximum Z7 resolution.

Structure of the 64-bit Z7 index

Bit Range Value Purpose
63–60 0–11 Base cell number from the icosahedron.
59–57 0–6 Refinement digit for resolution 1.
56–54 0–6 Refinement digit for resolution 2.
... ... ...
2–0 0–6 Refinement digit for resolution 20.

Thanks!

cc. @allixender @tik65536 @sahrk @fmigneault

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions