From bb171f5e4c5773404f035954844b4084e64d4ba4 Mon Sep 17 00:00:00 2001 From: Evon Silvia Date: Thu, 21 Aug 2025 10:52:16 -0700 Subject: [PATCH 1/5] Replicate redundant CRS section 2.2 in header and CRS sections --- source/02.04_header.sub | 16 ++++++++++++---- source/03_crs.txt | 23 ++++++++++++++--------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/source/02.04_header.sub b/source/02.04_header.sub index 21136fa..2af3060 100644 --- a/source/02.04_header.sub +++ b/source/02.04_header.sub @@ -1,3 +1,7 @@ +.. raw:: latex + + \newpage + .. _headerblock_label: Public Header Block @@ -179,10 +183,14 @@ defined as follows: | | | for a system not directly supporting | | | | multiple returns. | +-------+-----------------------+------------------------------------------+ - | 4 | WKT | If set, the Coordinate Reference System | - | | | (CRS) is WKT. This bit must be set in | - | | | LAS 1.5; GeoTIFF CRS definitions are no | - | | | longer supported in LAS 1.5. | + | 4 | Well Known Text (WKT) | If set, the Coordinate Reference System | + | | | (CRS) is formatted as OGC WKT. This bit | + | | | must be set in LAS 1.5; GeoTIFF CRS | + | | | definitions from prior versions of LAS | + | | | are no longer supported in LAS 1.5. | + | | | The CRS definition will be located in | + | | | the WKT VLR(s) or EVLR(s) as defined in | + | | | the :ref:`crs_label` section. | +-------+-----------------------+------------------------------------------+ | 5 | Reserved | Must be set to zero. | +-------+-----------------------+------------------------------------------+ diff --git a/source/03_crs.txt b/source/03_crs.txt index 6705af8..9143da8 100644 --- a/source/03_crs.txt +++ b/source/03_crs.txt @@ -2,18 +2,23 @@ \newpage +.. _crs_label: + Coordinate Reference System -------------------------------------------------------------------------------- -Coordinate Reference System (CRS) information is required for a LAS 1.5 file. -LAS 1.5 defines VLRs in :ref:`vlrdef_label` and EVLRs in :ref:`evlrdef_label` and -requires them for specifying the Coordinate Reference System (CRS) of the file. - -CRS information shall be placed in VLRs or EVLRs and represented as `OGC Well -Known Text `__ (WKT) without regard to +Coordinate Reference System (CRS) information is required for a LAS 1.5 file +and must be placed in :ref:`vlrdef_label` or :ref:`evlrdef_label`. +LAS 1.5 CRS information shall be represented as `OGC Well +Known Text `__ (WKT), as indicated by the :ref:`Global Encoding ` bit. -GeoTIFF CRS representations are no longer supported as of LAS 1.5. +GeoTIFF CRS representations from prior versions of LAS are not supported in LAS 1.5. + +It is considered a file error to have more than one WKT VLR or EVLR in the file. +A writer can efficiently revise a CRS VLR or EVLR without rewriting the entire LAS file by +"superseding" the existing CRS VLR or EVLR. Superseding is performed by changing the +Record ID of the VLR or EVLR to match the :ref:`superseded_vlr_label` VLR definition. .. _crs_wkt: @@ -70,8 +75,8 @@ supplemental parameterized math transform definition. | Record ID | 2111 | +-----------------+-----------------------------+ -This record must contain a Math Transform WKT consistent with the same WKT -specification being used by :ref:`crs_wkt`, with the following considerations: +This record must contain a Math Transform WKT Record consistent with the same WKT +specification being used by the :ref:`Coordinate System WKT Record `, with the following considerations: * The OGC Math Transform WKT VLR data shall be a null-terminated string. * The OGC Math Transform WKT VLR data shall be considered UTF-8. From 0cf1760de9c2d4093efd330c08924616b4c5a151 Mon Sep 17 00:00:00 2001 From: Evon Silvia Date: Thu, 21 Aug 2025 10:54:24 -0700 Subject: [PATCH 2/5] Remove redundant section 2.2 --- source/02.00_definition.txt | 1 - source/02.02_crs.sub | 22 ---------------------- source/02.03_datatypes.sub | 4 ++++ 3 files changed, 4 insertions(+), 23 deletions(-) delete mode 100644 source/02.02_crs.sub diff --git a/source/02.00_definition.txt b/source/02.00_definition.txt index 7884cf2..5861987 100644 --- a/source/02.00_definition.txt +++ b/source/02.00_definition.txt @@ -43,7 +43,6 @@ header contained within the Public Header Block ("Start of Waveform Data Packet Record"). .. include:: ./02.01_legacy.sub -.. include:: ./02.02_crs.sub .. include:: ./02.03_datatypes.sub .. include:: ./02.04_header.sub .. include:: ./02.05_vlr.sub diff --git a/source/02.02_crs.sub b/source/02.02_crs.sub deleted file mode 100644 index 6d4d455..0000000 --- a/source/02.02_crs.sub +++ /dev/null @@ -1,22 +0,0 @@ -Coordinate Reference System (CRS) Representation -................................................................................ - -Well Known Text (WKT) is the required Coordinate -Reference System (CRS) representation for LAS 1.5. - -A "WKT" bit is included in the :ref:`Global Encoding ` field in the Public Header -Block. This bit must be set for LAS 1.5; GeoTIFF CRS definitions for legacy -point formats are no longer supported in LAS 1.5. The CRS for the file must be -located in the WKT (Extended) Variable Length Records (EVLR, VLR). - -It is considered a file error to have more than -one WKT (E)VLR in the file. A writer can append a new CRS EVLR to a file by -"superseding" the existing CRS (E)VLR. Superseding is performed by changing the -Record ID of the (E)VLR to match the :ref:`superseded_vlr_label` VLR defined -later in this document. - - -.. raw:: latex - - \newpage - diff --git a/source/02.03_datatypes.sub b/source/02.03_datatypes.sub index 0cd6bc9..594da39 100644 --- a/source/02.03_datatypes.sub +++ b/source/02.03_datatypes.sub @@ -1,3 +1,7 @@ +.. raw:: latex + + \newpage + Data Types ................................................................................ From 59bdce33f7f822e3f0014fd0d5bc4179dc6c26a8 Mon Sep 17 00:00:00 2001 From: Evon Silvia Date: Thu, 21 Aug 2025 10:54:40 -0700 Subject: [PATCH 3/5] Normalize mixed notation of VLR/EVLR --- source/04_optional_vlrs.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/04_optional_vlrs.txt b/source/04_optional_vlrs.txt index cc5ee13..2288cac 100644 --- a/source/04_optional_vlrs.txt +++ b/source/04_optional_vlrs.txt @@ -35,7 +35,7 @@ Text Area Description | Record ID | 3 | +-----------------+-----------------------------+ -This VLR/EVLR is used for providing a textual description of the content of the +This VLR is used for providing a textual description of the content of the LAS file. It is a null-terminated, free-form ASCII string. .. _extrabytes_vlr_label: @@ -231,8 +231,8 @@ Superseded | Record ID | 7 | +-----------------+-----------------------------+ -This LASF Record ID is used to negate an existing VLR/EVLR when rewriting the -file (to remove the undesired VLR/EVLR). It is used, for example, when +This LASF Record ID is used to negate an existing VLR or EVLR when rewriting the +file (to remove the undesired VLR or EVLR). It is used, for example, when updating a record such as projection information where a new EVLR is appended to the end of the LAS file. The existing VLR which has been superseded must be marked with the SUPERSEDED Record ID. From 467db49c9fe974166e85e4c7c82570e1ae9dd0cd Mon Sep 17 00:00:00 2001 From: Evon Silvia Date: Thu, 21 Aug 2025 11:18:58 -0700 Subject: [PATCH 4/5] Add missing note about appending the CRS definition as a EVLR. --- source/03_crs.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/03_crs.txt b/source/03_crs.txt index 9143da8..47a870c 100644 --- a/source/03_crs.txt +++ b/source/03_crs.txt @@ -16,8 +16,9 @@ the :ref:`Global Encoding ` bit. GeoTIFF CRS representations from prior versions of LAS are not supported in LAS 1.5. It is considered a file error to have more than one WKT VLR or EVLR in the file. -A writer can efficiently revise a CRS VLR or EVLR without rewriting the entire LAS file by -"superseding" the existing CRS VLR or EVLR. Superseding is performed by changing the +A writer can efficiently revise a CRS definition without rewriting the entire LAS file by +"superseding" the existing CRS VLR or EVLR and appending a new CRS definition in an EVLR. +Superseding is performed by changing the Record ID of the VLR or EVLR to match the :ref:`superseded_vlr_label` VLR definition. .. _crs_wkt: From c1a5a8b9ce75e0a29ef6397cfb1be1732ff642a1 Mon Sep 17 00:00:00 2001 From: Evon Silvia Date: Thu, 21 Aug 2025 11:22:39 -0700 Subject: [PATCH 5/5] Change section 2 filenames to match original section numbering --- source/02.00_definition.txt | 10 +++++----- source/{02.03_datatypes.sub => 02.02_datatypes.sub} | 0 source/{02.04_header.sub => 02.03_header.sub} | 0 source/{02.05_vlr.sub => 02.04_vlr.sub} | 0 source/{02.06_point.sub => 02.05_point.sub} | 0 source/{02.07_evlr.sub => 02.06_evlr.sub} | 0 6 files changed, 5 insertions(+), 5 deletions(-) rename source/{02.03_datatypes.sub => 02.02_datatypes.sub} (100%) rename source/{02.04_header.sub => 02.03_header.sub} (100%) rename source/{02.05_vlr.sub => 02.04_vlr.sub} (100%) rename source/{02.06_point.sub => 02.05_point.sub} (100%) rename source/{02.07_evlr.sub => 02.06_evlr.sub} (100%) diff --git a/source/02.00_definition.txt b/source/02.00_definition.txt index 5861987..bdd34ed 100644 --- a/source/02.00_definition.txt +++ b/source/02.00_definition.txt @@ -43,10 +43,10 @@ header contained within the Public Header Block ("Start of Waveform Data Packet Record"). .. include:: ./02.01_legacy.sub -.. include:: ./02.03_datatypes.sub -.. include:: ./02.04_header.sub -.. include:: ./02.05_vlr.sub -.. include:: ./02.06_point.sub -.. include:: ./02.07_evlr.sub +.. include:: ./02.02_datatypes.sub +.. include:: ./02.03_header.sub +.. include:: ./02.04_vlr.sub +.. include:: ./02.05_point.sub +.. include:: ./02.06_evlr.sub diff --git a/source/02.03_datatypes.sub b/source/02.02_datatypes.sub similarity index 100% rename from source/02.03_datatypes.sub rename to source/02.02_datatypes.sub diff --git a/source/02.04_header.sub b/source/02.03_header.sub similarity index 100% rename from source/02.04_header.sub rename to source/02.03_header.sub diff --git a/source/02.05_vlr.sub b/source/02.04_vlr.sub similarity index 100% rename from source/02.05_vlr.sub rename to source/02.04_vlr.sub diff --git a/source/02.06_point.sub b/source/02.05_point.sub similarity index 100% rename from source/02.06_point.sub rename to source/02.05_point.sub diff --git a/source/02.07_evlr.sub b/source/02.06_evlr.sub similarity index 100% rename from source/02.07_evlr.sub rename to source/02.06_evlr.sub