mirror of
https://github.com/pgpointcloud/pointcloud.git
synced 2026-02-01 17:20:32 +00:00
deploy: 473701fb056a040a3cf07c95c01a89e16c61b4ab
This commit is contained in:
parent
b346b1b64c
commit
4ab20ad995
@ -9,7 +9,7 @@ data volumes, PostgreSQL Pointcloud allows schemas to declare their preferred
|
||||
compression method in the ``<pc:metadata>`` block of the schema document. In
|
||||
the example schema, we declared our compression as follows:
|
||||
|
||||
.. code-block:: sql
|
||||
.. code-block:: xml
|
||||
|
||||
<pc:metadata>
|
||||
<Metadata name="compression">dimensional</Metadata>
|
||||
@ -35,7 +35,7 @@ Dimensional compression first flips the patch representation from a list of N
|
||||
points containing M dimension values to a list of M dimensions each containing
|
||||
N values.
|
||||
|
||||
.. code-block:: sql
|
||||
.. code-block:: json
|
||||
|
||||
{"pcid":1,"pts":[
|
||||
[-126.99,45.01,1,0],[-126.98,45.02,2,0],[-126.97,45.03,3,0],
|
||||
@ -44,7 +44,7 @@ N values.
|
||||
|
||||
Becomes, notionally:
|
||||
|
||||
.. code-block:: sql
|
||||
.. code-block:: json
|
||||
|
||||
{"pcid":1,"dims":[
|
||||
[-126.99,-126.98,-126.97,-126.96,-126.95,-126.94],
|
||||
|
||||
@ -7,7 +7,9 @@ Functions
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
schema
|
||||
points
|
||||
patchs
|
||||
wkb
|
||||
postgis
|
||||
utils
|
||||
|
||||
@ -4,72 +4,13 @@
|
||||
PcPatch
|
||||
********************************************************************************
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Patch
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Patch(pts pcpoint[]) returns pcpatch:
|
||||
|
||||
Aggregate function that collects a result set of pcpoint values into a pcpatch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
INSERT INTO patches (pa)
|
||||
SELECT PC_Patch(pt) FROM points GROUP BY id/10;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_MakePatch
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_MakePatch(pcid integer, vals float8[]) returns pcpatch:
|
||||
|
||||
Given a valid pcid schema number and an array of doubles that matches the
|
||||
schema, construct a new pcpatch. Array size must be a multiple of the number of
|
||||
dimensions.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_AsText(PC_MakePatch(1, ARRAY[-126.99,45.01,1,0, -126.98,45.02,2,0, -126.97,45.03,3,0]));
|
||||
|
||||
{"pcid":1,"pts":[
|
||||
[-126.99,45.01,1,0],[-126.98,45.02,2,0],[-126.97,45.03,3,0]
|
||||
]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_NumPoints
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_NumPoints(p pcpatch) returns integer:
|
||||
|
||||
Return the number of points in this patch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_NumPoints(pa) FROM patches LIMIT 1;
|
||||
|
||||
9
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_PCId
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_PCId(p pcpatch) returns integer:
|
||||
|
||||
Return the pcid schema number of points in this patch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_PCId(pa) FROM patches LIMIT 1;
|
||||
|
||||
1
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_AsText
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_AsText(p pcpatch) returns text:
|
||||
|
||||
Return a JSON version of the data in that patch.
|
||||
Returns a JSON version of the data in that patch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
@ -82,72 +23,23 @@ Return a JSON version of the data in that patch.
|
||||
]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Summary
|
||||
PC_Compress
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Summary(p pcpatch) returns text (from 1.1.0):
|
||||
:PC_Compress(p pcpatch,global_compression_scheme text,compression_config text) returns pcpatch:
|
||||
|
||||
Return a JSON formatted summary of the data in that point.
|
||||
Compress a patch with a manually specified scheme. The compression_config
|
||||
semantic depends on the global compression scheme. Allowed global compression
|
||||
schemes are:
|
||||
|
||||
.. code-block::
|
||||
- auto: determined by pcid
|
||||
- laz: no compression config supported
|
||||
- dimensional: configuration is a comma-separated list of per-dimension compressions from this list
|
||||
|
||||
SELECT PC_Summary(pa) FROM patches LIMIT 1;
|
||||
|
||||
{"pcid":1, "npts":9, "srid":4326, "compr":"dimensional","dims":[{"pos":0,"name":"X","size":4,"type":"int32_t","compr":"sigbits","stats":{"min":-126.99,"max":-126.91,"avg":-126.95}},{"pos":1,"name":"Y","size":4,"type":"int32_t","compr":"sigbits","stats":{"min":45.01,"max":45.09,"avg":45.05}},{"pos":2,"name":"Z","size":4,"type":"int32_t","compr":"sigbits","stats":{"min":1,"max":9,"avg":5}},{"pos":3,"name":"Intensity","size":2,"type":"uint16_t","compr":"rle","stats":{"min":0,"max":0,"avg":0}}]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Uncompress
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Uncompress(p pcpatch) returns pcpatch:
|
||||
|
||||
Returns an uncompressed version of the patch (compression type ``none``). In
|
||||
order to return an uncompressed patch on the wire, this must be the outer
|
||||
function with return type pcpatch in your SQL query. All other functions that
|
||||
return pcpatch will compress output to the schema-specified compression before
|
||||
returning.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Uncompress(pa) FROM patches
|
||||
WHERE PC_NumPoints(pa) = 1;
|
||||
|
||||
01010000000000000001000000C8CEFFFFF8110000102700000A00
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Union
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Union(p pcpatch[]) returns pcpatch:
|
||||
|
||||
Aggregate function merges a result set of pcpatch entries into a single pcpatch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
-- Compare npoints(sum(patches)) to sum(npoints(patches))
|
||||
SELECT PC_NumPoints(PC_Union(pa)) FROM patches;
|
||||
SELECT Sum(PC_NumPoints(pa)) FROM patches;
|
||||
|
||||
100
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Intersects
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Intersects(p1 pcpatch, p2 pcpatch) returns boolean:
|
||||
|
||||
Returns true if the bounds of p1 intersect the bounds of p2.
|
||||
|
||||
.. code-block::
|
||||
|
||||
-- Patch should intersect itself
|
||||
SELECT PC_Intersects(
|
||||
'01010000000000000001000000C8CEFFFFF8110000102700000A00'::pcpatch,
|
||||
'01010000000000000001000000C8CEFFFFF8110000102700000A00'::pcpatch);
|
||||
|
||||
t
|
||||
- auto: determined automatically from values stats
|
||||
- zlib: deflate compression
|
||||
- sigbits: significant bits removal
|
||||
- rle: run-length encoding
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Explode
|
||||
@ -176,33 +68,148 @@ each point in the patch.
|
||||
{"pcid":1,"pt":[-126.42,45.58,58,5]} | 7
|
||||
{"pcid":1,"pt":[-126.41,45.59,59,5]} | 7
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_PatchMin
|
||||
PC_FilterBetween
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_PatchMin(p pcpatch, dimname text) returns numeric:
|
||||
:PC_FilterBetween(p pcpatch, dimname text, float8 value1, float8 value2) returns pcpatch:
|
||||
|
||||
Reads the values of the requested dimension for all points in the patch and
|
||||
returns the minimum of those values. Dimension name must exist in the schema.
|
||||
Returns a patch with only points whose values are between (excluding) the
|
||||
supplied values for the requested dimension.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_FilterEquals
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_FilterEquals(p pcpatch, dimname text, float8 value) returns pcpatch:
|
||||
|
||||
Returns a patch with only points whose values are the same as the supplied
|
||||
values for the requested dimension.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_FilterGreaterThan
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_FilterGreaterThan(p pcpatch, dimname text, float8 value) returns pcpatch:
|
||||
|
||||
Returns a patch with only points whose values are greater than the supplied
|
||||
value for the requested dimension.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_PatchMin(pa, 'y')
|
||||
SELECT PC_AsText(PC_FilterGreaterThan(pa, 'y', 45.57))
|
||||
FROM patches WHERE id = 7;
|
||||
|
||||
45.5
|
||||
{"pcid":1,"pts":[[-126.42,45.58,58,5],[-126.41,45.59,59,5]]}
|
||||
|
||||
:PC_PatchMin(p pcpatch) returns pcpoint:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_FilterLessThan
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Returns a PcPoint with the minimum values of each dimension in the patch.
|
||||
:PC_FilterLessThan(p pcpatch, dimname text, float8 value) returns pcpatch:
|
||||
|
||||
Returns a patch with only points whose values are less than the supplied value
|
||||
for the requested dimension.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Intersects
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Intersects(p1 pcpatch, p2 pcpatch) returns boolean:
|
||||
|
||||
Returns true if the bounds of p1 intersect the bounds of p2.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_PatchMin(pa)
|
||||
FROM patches WHERE id = 7;
|
||||
-- Patch should intersect itself
|
||||
SELECT PC_Intersects(
|
||||
'01010000000000000001000000C8CEFFFFF8110000102700000A00'::pcpatch,
|
||||
'01010000000000000001000000C8CEFFFFF8110000102700000A00'::pcpatch);
|
||||
|
||||
{"pcid":1,"pt":[-126.5,45.5,50,5]}
|
||||
t
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_IsSorted
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_IsSorted(p pcpatch, dimnames text[], strict boolean default true) returns boolean:
|
||||
|
||||
Checks whether a pcpatch is sorted lexicographically along the given
|
||||
dimensions. The ``strict`` option further checks that the ordering is strict
|
||||
(no duplicates).
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_MakePatch
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_MakePatch(pcid integer, vals float8[]) returns pcpatch:
|
||||
|
||||
Given a valid pcid schema number and an array of doubles that matches the
|
||||
schema, construct a new pcpatch. Array size must be a multiple of the number of
|
||||
dimensions.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_AsText(PC_MakePatch(1, ARRAY[-126.99,45.01,1,0, -126.98,45.02,2,0, -126.97,45.03,3,0]));
|
||||
|
||||
{"pcid":1,"pts":[
|
||||
[-126.99,45.01,1,0],[-126.98,45.02,2,0],[-126.97,45.03,3,0]
|
||||
]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_MemSize
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_MemSize(p pcpatch) returns int4:
|
||||
|
||||
Returns the memory size of a pcpatch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_MemSize(PC_Patch(PC_MakePoint(1, ARRAY[-127, 45, 124.0, 4.0])));
|
||||
|
||||
161
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_NumPoints
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_NumPoints(p pcpatch) returns integer:
|
||||
|
||||
Returns the number of points in this patch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_NumPoints(pa) FROM patches LIMIT 1;
|
||||
|
||||
9
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_PCId
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_PCId(p pcpatch) returns integer:
|
||||
|
||||
Returns the pcid schema number of points in this patch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_PCId(pa) FROM patches LIMIT 1;
|
||||
|
||||
1
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Patch
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Patch(pts pcpoint[]) returns pcpatch:
|
||||
|
||||
Aggregate function that collects a result set of pcpoint values into a pcpatch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
INSERT INTO patches (pa)
|
||||
SELECT PC_Patch(pt) FROM points GROUP BY id/10;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_PatchAvg
|
||||
@ -259,66 +266,31 @@ Returns a PcPoint with the maximum values of each dimension in the patch.
|
||||
{"pcid":1,"pt":[-126.41,45.59,59,5]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_FilterGreaterThan
|
||||
PC_PatchMin
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_FilterGreaterThan(p pcpatch, dimname text, float8 value) returns pcpatch:
|
||||
:PC_PatchMin(p pcpatch, dimname text) returns numeric:
|
||||
|
||||
Returns a patch with only points whose values are greater than the supplied
|
||||
value for the requested dimension.
|
||||
Reads the values of the requested dimension for all points in the patch and
|
||||
returns the minimum of those values. Dimension name must exist in the schema.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_AsText(PC_FilterGreaterThan(pa, 'y', 45.57))
|
||||
SELECT PC_PatchMin(pa, 'y')
|
||||
FROM patches WHERE id = 7;
|
||||
|
||||
{"pcid":1,"pts":[[-126.42,45.58,58,5],[-126.41,45.59,59,5]]}
|
||||
45.5
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_FilterLessThan
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
:PC_PatchMin(p pcpatch) returns pcpoint:
|
||||
|
||||
:PC_FilterLessThan(p pcpatch, dimname text, float8 value) returns pcpatch:
|
||||
Returns a PcPoint with the minimum values of each dimension in the patch.
|
||||
|
||||
Returns a patch with only points whose values are less than the supplied value
|
||||
for the requested dimension.
|
||||
.. code-block::
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_FilterBetween
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
SELECT PC_PatchMin(pa)
|
||||
FROM patches WHERE id = 7;
|
||||
|
||||
:PC_FilterBetween(p pcpatch, dimname text, float8 value1, float8 value2) returns pcpatch:
|
||||
|
||||
Returns a patch with only points whose values are between (excluding) the
|
||||
supplied values for the requested dimension.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_FilterEquals
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_FilterEquals(p pcpatch, dimname text, float8 value) returns pcpatch:
|
||||
|
||||
Returns a patch with only points whose values are the same as the supplied
|
||||
values for the requested dimension.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Compress
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Compress(p pcpatch,global_compression_scheme text,compression_config text) returns pcpatch:
|
||||
|
||||
Compress a patch with a manually specified scheme. The compression_config
|
||||
semantic depends on the global compression scheme. Allowed global compression
|
||||
schemes are:
|
||||
|
||||
- auto: determined by pcid
|
||||
- laz: no compression config supported
|
||||
- dimensional: configuration is a comma-separated list of per-dimension compressions from this list
|
||||
|
||||
- auto: determined automatically from values stats
|
||||
- zlib: deflate compression
|
||||
- sigbits: significant bits removal
|
||||
- rle: run-length encoding
|
||||
{"pcid":1,"pt":[-126.5,45.5,50,5]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_PointN
|
||||
@ -329,25 +301,6 @@ PC_PointN
|
||||
Returns the n-th point of the patch with 1-based indexing. Negative n counts
|
||||
point from the end.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_IsSorted
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_IsSorted(p pcpatch, dimnames text[], strict boolean default true) returns boolean:
|
||||
|
||||
Checks whether a pcpatch is sorted lexicographically along the given
|
||||
dimensions. The ``strict`` option further checks that the ordering is strict
|
||||
(no duplicates).
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Sort
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Sort(p pcpatch, dimnames text[]) returns pcpatch:
|
||||
|
||||
Returns a copy of the input patch lexicographically sorted along the given
|
||||
dimensions.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Range
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -369,6 +322,29 @@ For dimensions that are in the "new" schema but not in the "old" schema the
|
||||
value ``def`` is set in the points of the output patch. ``def`` is optional,
|
||||
its default value is ``0.0``.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Sort
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Sort(p pcpatch, dimnames text[]) returns pcpatch:
|
||||
|
||||
Returns a copy of the input patch lexicographically sorted along the given
|
||||
dimensions.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Summary
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Summary(p pcpatch) returns text (from 1.1.0):
|
||||
|
||||
Returns a JSON formatted summary of the data in that point.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Summary(pa) FROM patches LIMIT 1;
|
||||
|
||||
{"pcid":1, "npts":9, "srid":4326, "compr":"dimensional","dims":[{"pos":0,"name":"X","size":4,"type":"int32_t","compr":"sigbits","stats":{"min":-126.99,"max":-126.91,"avg":-126.95}},{"pos":1,"name":"Y","size":4,"type":"int32_t","compr":"sigbits","stats":{"min":45.01,"max":45.09,"avg":45.05}},{"pos":2,"name":"Z","size":4,"type":"int32_t","compr":"sigbits","stats":{"min":1,"max":9,"avg":5}},{"pos":3,"name":"Intensity","size":2,"type":"uint16_t","compr":"rle","stats":{"min":0,"max":0,"avg":0}}]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Transform
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -387,15 +363,37 @@ data if dimension interpretations, scales or offsets are different in the new
|
||||
schema.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_MemSize
|
||||
PC_Uncompress
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_MemSize(p pcpatch) returns int4:
|
||||
:PC_Uncompress(p pcpatch) returns pcpatch:
|
||||
|
||||
Return the memory size of a pcpatch.
|
||||
Returns an uncompressed version of the patch (compression type ``none``). In
|
||||
order to return an uncompressed patch on the wire, this must be the outer
|
||||
function with return type pcpatch in your SQL query. All other functions that
|
||||
return pcpatch will compress output to the schema-specified compression before
|
||||
returning.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_MemSize(PC_Patch(PC_MakePoint(1, ARRAY[-127, 45, 124.0, 4.0])));
|
||||
SELECT PC_Uncompress(pa) FROM patches
|
||||
WHERE PC_NumPoints(pa) = 1;
|
||||
|
||||
161
|
||||
01010000000000000001000000C8CEFFFFF8110000102700000A00
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Union
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Union(p pcpatch[]) returns pcpatch:
|
||||
|
||||
Aggregate function merges a result set of pcpatch entries into a single pcpatch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
-- Compare npoints(sum(patches)) to sum(npoints(patches))
|
||||
SELECT PC_NumPoints(PC_Union(pa)) FROM patches;
|
||||
SELECT Sum(PC_NumPoints(pa)) FROM patches;
|
||||
|
||||
100
|
||||
|
||||
@ -4,6 +4,45 @@
|
||||
PcPoint
|
||||
********************************************************************************
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_AsText
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_AsText(p pcpoint) returns text:
|
||||
|
||||
Returns a JSON version of the data in that point.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_AsText('010100000064CEFFFF94110000703000000400'::pcpoint);
|
||||
|
||||
{"pcid":1,"pt":[-127,45,124,4]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Get
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Get(pt pcpoint) returns float8[]:
|
||||
|
||||
Returns values of all dimensions in an array.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Get('010100000064CEFFFF94110000703000000400'::pcpoint);
|
||||
|
||||
{-127,45,124,4}
|
||||
|
||||
:PC_Get(pt pcpoint, dimname text) returns numeric:
|
||||
|
||||
Returns the numeric value of the named dimension. The dimension name must exist
|
||||
in the schema.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Get('010100000064CEFFFF94110000703000000400'::pcpoint, 'Intensity');
|
||||
|
||||
4
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_MakePoint
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -35,19 +74,18 @@ Insert some test values into the points table:
|
||||
) AS values;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_AsText
|
||||
PC_MemSize
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_AsText(p pcpoint) returns text:
|
||||
:PC_MemSize(pt pcpoint) returns int4:
|
||||
|
||||
Return a JSON version of the data in that point.
|
||||
Returns the memory size of a pcpoint.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_AsText('010100000064CEFFFF94110000703000000400'::pcpoint);
|
||||
|
||||
{"pcid":1,"pt":[-127,45,124,4]}
|
||||
SELECT PC_MemSize(PC_MakePoint(1, ARRAY[-127, 45, 124.0, 4.0]));
|
||||
|
||||
25
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_PCId
|
||||
@ -55,49 +93,10 @@ PC_PCId
|
||||
|
||||
:PC_PCId(p pcpoint) returns integer (from 1.1.0):
|
||||
|
||||
Return the pcid schema number of this point.
|
||||
Returns the pcid schema number of this point.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_PCId('010100000064CEFFFF94110000703000000400'::pcpoint);
|
||||
|
||||
1
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Get
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Get(pt pcpoint) returns float8[]:
|
||||
|
||||
Return values of all dimensions in an array.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Get('010100000064CEFFFF94110000703000000400'::pcpoint);
|
||||
|
||||
{-127,45,124,4}
|
||||
|
||||
:PC_Get(pt pcpoint, dimname text) returns numeric:
|
||||
|
||||
Return the numeric value of the named dimension. The dimension name must exist
|
||||
in the schema.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Get('010100000064CEFFFF94110000703000000400'::pcpoint, 'Intensity');
|
||||
|
||||
4
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_MemSize
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_MemSize(pt pcpoint) returns int4:
|
||||
|
||||
Return the memory size of a pcpoint.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_MemSize(PC_MakePoint(1, ARRAY[-127, 45, 124.0, 4.0]));
|
||||
|
||||
25
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
.. _points:
|
||||
.. _postgis:
|
||||
|
||||
********************************************************************************
|
||||
PostGIS
|
||||
@ -16,46 +16,6 @@ Geometry and doing spatial filtering on point cloud data. The
|
||||
CREATE EXTENSION pointcloud;
|
||||
CREATE EXTENSION pointcloud_postgis;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Intersects
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Intersects(p pcpatch, g geometry) returns boolean:
|
||||
|
||||
:PC_Intersects(g geometry, p pcpatch) returns boolean:
|
||||
|
||||
Returns true if the bounds of the patch intersect the geometry.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Intersects('SRID=4326;POINT(-126.451 45.552)'::geometry, pa)
|
||||
FROM patches WHERE id = 7;
|
||||
|
||||
t
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Intersection
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Intersection(pcpatch, geometry) returns pcpatch:
|
||||
|
||||
Returns a PcPatch which only contains points that intersected the geometry.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_AsText(PC_Explode(PC_Intersection(
|
||||
pa,
|
||||
'SRID=4326;POLYGON((-126.451 45.552, -126.42 47.55, -126.40 45.552, -126.451 45.552))'::geometry
|
||||
)))
|
||||
FROM patches WHERE id = 7;
|
||||
|
||||
pc_astext
|
||||
--------------------------------------
|
||||
{"pcid":1,"pt":[-126.44,45.56,56,5]}
|
||||
{"pcid":1,"pt":[-126.43,45.57,57,5]}
|
||||
{"pcid":1,"pt":[-126.42,45.58,58,5]}
|
||||
{"pcid":1,"pt":[-126.41,45.59,59,5]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Geometry
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -73,28 +33,6 @@ Casts ``PcPoint`` to the PostGIS geometry equivalent, placing the x/y/z/m of the
|
||||
|
||||
POINT Z (-127 45 124)
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_EnvelopeGeometry
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_EnvelopeGeometry(pcpatch) returns geometry:
|
||||
|
||||
Returns the 2D bounds of the patch as a PostGIS Polygon 2D. Useful for
|
||||
performing 2D intersection tests with PostGIS geometries.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT ST_AsText(PC_EnvelopeGeometry(pa)) FROM patches LIMIT 1;
|
||||
|
||||
POLYGON((-126.99 45.01,-126.99 45.09,-126.91 45.09,-126.91 45.01,-126.99 45.01))
|
||||
|
||||
For example, this is how one may want to create an index:
|
||||
|
||||
.. code-block::
|
||||
|
||||
CREATE INDEX ON patches USING GIST(PC_EnvelopeGeometry(patch));
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_BoundingDiagonalGeometry
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -128,3 +66,64 @@ For example, this is how one may want to create an index:
|
||||
.. code-block::
|
||||
|
||||
CREATE INDEX ON patches USING GIST(PC_BoundingDiagonalGeometry(patch) gist_geometry_ops_nd);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_EnvelopeGeometry
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_EnvelopeGeometry(pcpatch) returns geometry:
|
||||
|
||||
Returns the 2D bounds of the patch as a PostGIS Polygon 2D. Useful for
|
||||
performing 2D intersection tests with PostGIS geometries.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT ST_AsText(PC_EnvelopeGeometry(pa)) FROM patches LIMIT 1;
|
||||
|
||||
POLYGON((-126.99 45.01,-126.99 45.09,-126.91 45.09,-126.91 45.01,-126.99 45.01))
|
||||
|
||||
For example, this is how one may want to create an index:
|
||||
|
||||
.. code-block::
|
||||
|
||||
CREATE INDEX ON patches USING GIST(PC_EnvelopeGeometry(patch));
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Intersection
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Intersection(pcpatch, geometry) returns pcpatch:
|
||||
|
||||
Returns a PcPatch which only contains points that intersected the geometry.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_AsText(PC_Explode(PC_Intersection(
|
||||
pa,
|
||||
'SRID=4326;POLYGON((-126.451 45.552, -126.42 47.55, -126.40 45.552, -126.451 45.552))'::geometry
|
||||
)))
|
||||
FROM patches WHERE id = 7;
|
||||
|
||||
pc_astext
|
||||
--------------------------------------
|
||||
{"pcid":1,"pt":[-126.44,45.56,56,5]}
|
||||
{"pcid":1,"pt":[-126.43,45.57,57,5]}
|
||||
{"pcid":1,"pt":[-126.42,45.58,58,5]}
|
||||
{"pcid":1,"pt":[-126.41,45.59,59,5]}
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Intersects
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Intersects(p pcpatch, g geometry) returns boolean:
|
||||
|
||||
:PC_Intersects(g geometry, p pcpatch) returns boolean:
|
||||
|
||||
Returns true if the bounds of the patch intersect the geometry.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Intersects('SRID=4326;POINT(-126.451 45.552)'::geometry, pa)
|
||||
FROM patches WHERE id = 7;
|
||||
|
||||
t
|
||||
|
||||
33
_sources/functions/schema.rst.txt
Normal file
33
_sources/functions/schema.rst.txt
Normal file
@ -0,0 +1,33 @@
|
||||
.. _schema:
|
||||
|
||||
********************************************************************************
|
||||
Schema
|
||||
********************************************************************************
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_SchemaGetNDims
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_SchemaGetNDims(pcid integer) returns integer:
|
||||
|
||||
Return the number of dimensions in the corresponding schema.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_SchemaGetNDims(1);
|
||||
|
||||
18
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_SchemaIsValid
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_SchemaIsValid(xml text) returns boolean:
|
||||
|
||||
Return `true` if the pointcloud schema is valid.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_SchemaIsValid(schema) FROM pointcloud_formats LIMIT 1;
|
||||
|
||||
t
|
||||
120
_sources/functions/utils.rst.txt
Normal file
120
_sources/functions/utils.rst.txt
Normal file
@ -0,0 +1,120 @@
|
||||
.. _utils:
|
||||
|
||||
********************************************************************************
|
||||
Utils
|
||||
********************************************************************************
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Full_Version
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Full_Version() returns text:
|
||||
|
||||
Return a composite version string summarizing pointcloud system components.
|
||||
Includes library, SQL, libxml2, PostgreSQL interface versions, and LAZperf
|
||||
support flag. Useful for debugging or verifying runtime compatibility of the
|
||||
pointcloud extension.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Full_Version();
|
||||
|
||||
POINTCLOUD="1.2.5 2346cc2" PGSQL="170" LIBXML2="2.14.3 LAZPERF enabled=false
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Lazperf_Enabled
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Lazperf_Enabled() returns boolean:
|
||||
|
||||
Return `true` if the pointcloud extension includes LAZperf compression support.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Lazperf_Enabled();
|
||||
|
||||
t
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_LibXML2_Version
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_LibXML2_Version() returns text:
|
||||
|
||||
Return the `libxml2` version number.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_LibXML2_Version();
|
||||
|
||||
2.14.3
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Lib_Version
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Lib_Version() returns text:
|
||||
|
||||
Return the library version number.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Lib_Version();
|
||||
|
||||
1.2.5 2346cc2
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_PGSQL_Version
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_PGSQL_Version() returns text:
|
||||
|
||||
Return the `pgsql` version number.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_PGSQL_Version();
|
||||
|
||||
170
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_PostGIS_Version
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_PostGIS_Version() returns text:
|
||||
|
||||
Return the PostGIS extension version number.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_PostGIS_Version();
|
||||
|
||||
1.2.5
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Script_Version
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Script_Version() returns text:
|
||||
|
||||
Return the script version number.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Script_Version();
|
||||
|
||||
1.2.5
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_Version
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_Version() returns text:
|
||||
|
||||
Return the extension version number.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_Version();
|
||||
|
||||
1.2.5
|
||||
@ -1,4 +1,4 @@
|
||||
.. _points:
|
||||
.. _wkb:
|
||||
|
||||
********************************************************************************
|
||||
WKB
|
||||
@ -18,6 +18,20 @@ Return the OGC "well-known binary" format for the point.
|
||||
|
||||
\x01010000800000000000c05fc000000000008046400000000000005f40
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_BoundingDiagonalAsBinary
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_BoundingDiagonalAsBinary(p pcpatch) returns bytea:
|
||||
|
||||
Return the OGC "well-known binary" format for the bounding diagonal of the
|
||||
patch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_BoundingDiagonalAsBinary( PC_Patch(ARRAY[ PC_MakePoint(1, ARRAY[0.,0.,0.,10.]), PC_MakePoint(1, ARRAY[1.,1.,1.,10.]), PC_MakePoint(1, ARRAY[10.,10.,10.,10.])]));
|
||||
|
||||
\x01020000a0e610000002000000000000000000000000000000000000000000000000000000000000000000244000000000000024400000000000002440
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_EnvelopeAsBinary
|
||||
@ -40,18 +54,3 @@ Useful for performing 2D intersection tests with geometries.
|
||||
``PC_Envelope`` is an alias to ``PC_EnvelopeAsBinary``. But ``PC_Envelope`` is
|
||||
deprecated and will be removed in a future version (2.0) of the extension.
|
||||
``PC_EnvelopeAsBinary`` is to be used instead.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PC_BoundingDiagonalAsBinary
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:PC_BoundingDiagonalAsBinary(p pcpatch) returns bytea:
|
||||
|
||||
Return the OGC "well-known binary" format for the bounding diagonal of the
|
||||
patch.
|
||||
|
||||
.. code-block::
|
||||
|
||||
SELECT PC_BoundingDiagonalAsBinary( PC_Patch(ARRAY[ PC_MakePoint(1, ARRAY[0.,0.,0.,10.]), PC_MakePoint(1, ARRAY[1.,1.,1.,10.]), PC_MakePoint(1, ARRAY[10.,10.,10.,10.])]));
|
||||
|
||||
\x01020000a0e610000002000000000000000000000000000000000000000000000000000000000000000000244000000000000024400000000000002440
|
||||
|
||||
@ -111,9 +111,9 @@
|
||||
data volumes, PostgreSQL Pointcloud allows schemas to declare their preferred
|
||||
compression method in the <code class="docutils literal notranslate"><span class="pre"><pc:metadata></span></code> block of the schema document. In
|
||||
the example schema, we declared our compression as follows:</p>
|
||||
<div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="o"><</span><span class="n">pc</span><span class="p">:</span><span class="n">metadata</span><span class="o">></span>
|
||||
<span class="w"> </span><span class="o"><</span><span class="n">Metadata</span><span class="w"> </span><span class="n">name</span><span class="o">=</span><span class="ss">"compression"</span><span class="o">></span><span class="n">dimensional</span><span class="o"></</span><span class="n">Metadata</span><span class="o">></span>
|
||||
<span class="o"></</span><span class="n">pc</span><span class="p">:</span><span class="n">metadata</span><span class="o">></span>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><pc:metadata></span>
|
||||
<span class="w"> </span><span class="nt"><Metadata</span><span class="w"> </span><span class="na">name=</span><span class="s">"compression"</span><span class="nt">></span>dimensional<span class="nt"></Metadata></span>
|
||||
<span class="nt"></pc:metadata></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>There are currently three supported compressions:</p>
|
||||
@ -133,19 +133,19 @@ use of the LAZ compression. If no compression is declared in
|
||||
<p>Dimensional compression first flips the patch representation from a list of N
|
||||
points containing M dimension values to a list of M dimensions each containing
|
||||
N values.</p>
|
||||
<div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="err">{</span><span class="ss">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="ss">"pts"</span><span class="p">:[</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">99</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">01</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">98</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">02</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">97</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">03</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">96</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">04</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">95</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">05</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">94</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">06</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="w"> </span><span class="p">]</span><span class="err">}</span>
|
||||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="nt">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="nt">"pts"</span><span class="p">:[</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="mf">-126.99</span><span class="p">,</span><span class="mf">45.01</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="mf">-126.98</span><span class="p">,</span><span class="mf">45.02</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="mf">-126.97</span><span class="p">,</span><span class="mf">45.03</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="mf">-126.96</span><span class="p">,</span><span class="mf">45.04</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="mf">-126.95</span><span class="p">,</span><span class="mf">45.05</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="mf">-126.94</span><span class="p">,</span><span class="mf">45.06</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="w"> </span><span class="p">]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Becomes, notionally:</p>
|
||||
<div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="err">{</span><span class="ss">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="ss">"dims"</span><span class="p">:[</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">99</span><span class="p">,</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">98</span><span class="p">,</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">97</span><span class="p">,</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">96</span><span class="p">,</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">95</span><span class="p">,</span><span class="o">-</span><span class="mi">126</span><span class="p">.</span><span class="mi">94</span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="mi">45</span><span class="p">.</span><span class="mi">01</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">02</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">03</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">04</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">05</span><span class="p">,</span><span class="mi">45</span><span class="p">.</span><span class="mi">06</span><span class="p">],</span>
|
||||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="nt">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="nt">"dims"</span><span class="p">:[</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="mf">-126.99</span><span class="p">,</span><span class="mf">-126.98</span><span class="p">,</span><span class="mf">-126.97</span><span class="p">,</span><span class="mf">-126.96</span><span class="p">,</span><span class="mf">-126.95</span><span class="p">,</span><span class="mf">-126.94</span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="mf">45.01</span><span class="p">,</span><span class="mf">45.02</span><span class="p">,</span><span class="mf">45.03</span><span class="p">,</span><span class="mf">45.04</span><span class="p">,</span><span class="mf">45.05</span><span class="p">,</span><span class="mf">45.06</span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">],</span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="w"> </span><span class="p">]</span><span class="err">}</span>
|
||||
<span class="w"> </span><span class="p">]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The potential benefit for compression is that each dimension has quite
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||||
<link rel="next" title="PcPoint" href="points.html" />
|
||||
<link rel="next" title="Schema" href="schema.html" />
|
||||
<link rel="prev" title="Getting Started" href="../quickstart.html" />
|
||||
</head>
|
||||
|
||||
@ -55,10 +55,12 @@
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Functions</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="schema.html">Schema</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html">PcPoint</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html">PcPatch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html">WKB</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html">PostGIS</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html">Utils</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -104,54 +106,70 @@
|
||||
<span id="id1"></span><h1>Functions<a class="headerlink" href="#functions" title="Link to this heading"></a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="schema.html">Schema</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="schema.html#pc-schemagetndims">PC_SchemaGetNDims</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="schema.html#pc-schemaisvalid">PC_SchemaIsValid</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="points.html">PcPoint</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html#pc-makepoint">PC_MakePoint</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html#pc-astext">PC_AsText</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html#pc-pcid">PC_PCId</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html#pc-get">PC_Get</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html#pc-makepoint">PC_MakePoint</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html#pc-memsize">PC_MemSize</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html#pc-pcid">PC_PCId</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="patchs.html">PcPatch</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-patch">PC_Patch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-makepatch">PC_MakePatch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-numpoints">PC_NumPoints</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-pcid">PC_PCId</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-astext">PC_AsText</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-summary">PC_Summary</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-uncompress">PC_Uncompress</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-union">PC_Union</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-intersects">PC_Intersects</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-compress">PC_Compress</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-explode">PC_Explode</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-patchmin">PC_PatchMin</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-patchavg">PC_PatchAvg</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-patchmax">PC_PatchMax</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-filtergreaterthan">PC_FilterGreaterThan</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-filterlessthan">PC_FilterLessThan</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-filterbetween">PC_FilterBetween</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-filterequals">PC_FilterEquals</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-compress">PC_Compress</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-pointn">PC_PointN</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-filtergreaterthan">PC_FilterGreaterThan</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-filterlessthan">PC_FilterLessThan</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-intersects">PC_Intersects</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-issorted">PC_IsSorted</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-sort">PC_Sort</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-makepatch">PC_MakePatch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-memsize">PC_MemSize</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-numpoints">PC_NumPoints</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-pcid">PC_PCId</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-patch">PC_Patch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-patchavg">PC_PatchAvg</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-patchmax">PC_PatchMax</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-patchmin">PC_PatchMin</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-pointn">PC_PointN</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-range">PC_Range</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-setpcid">PC_SetPCId</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-sort">PC_Sort</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-summary">PC_Summary</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-transform">PC_Transform</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-memsize">PC_MemSize</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-uncompress">PC_Uncompress</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html#pc-union">PC_Union</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="wkb.html">WKB</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html#pc-asbinary">PC_AsBinary</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html#pc-envelopeasbinary">PC_EnvelopeAsBinary</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html#pc-boundingdiagonalasbinary">PC_BoundingDiagonalAsBinary</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html#pc-envelopeasbinary">PC_EnvelopeAsBinary</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="postgis.html">PostGIS</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html#pc-intersects">PC_Intersects</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html#pc-intersection">PC_Intersection</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html#geometry">Geometry</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html#pc-envelopegeometry">PC_EnvelopeGeometry</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html#pc-boundingdiagonalgeometry">PC_BoundingDiagonalGeometry</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html#pc-envelopegeometry">PC_EnvelopeGeometry</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html#pc-intersection">PC_Intersection</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html#pc-intersects">PC_Intersects</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="utils.html">Utils</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html#pc-full-version">PC_Full_Version</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html#pc-lazperf-enabled">PC_Lazperf_Enabled</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html#pc-libxml2-version">PC_LibXML2_Version</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html#pc-lib-version">PC_Lib_Version</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html#pc-pgsql-version">PC_PGSQL_Version</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html#pc-postgis-version">PC_PostGIS_Version</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html#pc-script-version">PC_Script_Version</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html#pc-version">PC_Version</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -163,7 +181,7 @@
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="../quickstart.html" class="btn btn-neutral float-left" title="Getting Started" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="points.html" class="btn btn-neutral float-right" title="PcPoint" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
<a href="schema.html" class="btn btn-neutral float-right" title="Schema" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
@ -55,37 +55,39 @@
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Functions</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="schema.html">Schema</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html">PcPoint</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">PcPatch</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-patch">PC_Patch</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-makepatch">PC_MakePatch</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-numpoints">PC_NumPoints</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-pcid">PC_PCId</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-astext">PC_AsText</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-summary">PC_Summary</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-uncompress">PC_Uncompress</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-union">PC_Union</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-intersects">PC_Intersects</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-compress">PC_Compress</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-explode">PC_Explode</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-patchmin">PC_PatchMin</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-patchavg">PC_PatchAvg</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-patchmax">PC_PatchMax</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-filtergreaterthan">PC_FilterGreaterThan</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-filterlessthan">PC_FilterLessThan</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-filterbetween">PC_FilterBetween</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-filterequals">PC_FilterEquals</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-compress">PC_Compress</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-pointn">PC_PointN</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-filtergreaterthan">PC_FilterGreaterThan</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-filterlessthan">PC_FilterLessThan</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-intersects">PC_Intersects</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-issorted">PC_IsSorted</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-sort">PC_Sort</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-makepatch">PC_MakePatch</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-memsize">PC_MemSize</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-numpoints">PC_NumPoints</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-pcid">PC_PCId</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-patch">PC_Patch</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-patchavg">PC_PatchAvg</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-patchmax">PC_PatchMax</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-patchmin">PC_PatchMin</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-pointn">PC_PointN</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-range">PC_Range</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-setpcid">PC_SetPCId</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-sort">PC_Sort</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-summary">PC_Summary</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-transform">PC_Transform</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-memsize">PC_MemSize</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-uncompress">PC_Uncompress</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-union">PC_Union</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html">WKB</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html">PostGIS</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html">Utils</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -130,68 +132,13 @@
|
||||
|
||||
<section id="pcpatch">
|
||||
<span id="patchs"></span><h1>PcPatch<a class="headerlink" href="#pcpatch" title="Link to this heading"></a></h1>
|
||||
<section id="pc-patch">
|
||||
<h2>PC_Patch<a class="headerlink" href="#pc-patch" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Patch(pts pcpoint[]) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Aggregate function that collects a result set of pcpoint values into a pcpatch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">INSERT</span> <span class="n">INTO</span> <span class="n">patches</span> <span class="p">(</span><span class="n">pa</span><span class="p">)</span>
|
||||
<span class="n">SELECT</span> <span class="n">PC_Patch</span><span class="p">(</span><span class="n">pt</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">points</span> <span class="n">GROUP</span> <span class="n">BY</span> <span class="nb">id</span><span class="o">/</span><span class="mi">10</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-makepatch">
|
||||
<h2>PC_MakePatch<a class="headerlink" href="#pc-makepatch" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_MakePatch(pcid integer, vals float8[]) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Given a valid pcid schema number and an array of doubles that matches the
|
||||
schema, construct a new pcpatch. Array size must be a multiple of the number of
|
||||
dimensions.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="n">PC_MakePatch</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="o">-</span><span class="mf">126.99</span><span class="p">,</span><span class="mf">45.01</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mf">126.98</span><span class="p">,</span><span class="mf">45.02</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mf">126.97</span><span class="p">,</span><span class="mf">45.03</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">]));</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pts"</span><span class="p">:[</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="mf">126.99</span><span class="p">,</span><span class="mf">45.01</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="o">-</span><span class="mf">126.98</span><span class="p">,</span><span class="mf">45.02</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="o">-</span><span class="mf">126.97</span><span class="p">,</span><span class="mf">45.03</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="p">]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-numpoints">
|
||||
<h2>PC_NumPoints<a class="headerlink" href="#pc-numpoints" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_NumPoints(p pcpatch) returns integer<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the number of points in this patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_NumPoints</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="mi">9</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-pcid">
|
||||
<h2>PC_PCId<a class="headerlink" href="#pc-pcid" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_PCId(p pcpatch) returns integer<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the pcid schema number of points in this patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PCId</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="mi">1</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-astext">
|
||||
<h2>PC_AsText<a class="headerlink" href="#pc-astext" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_AsText(p pcpatch) returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return a JSON version of the data in that patch.</p>
|
||||
<p>Returns a JSON version of the data in that patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pts"</span><span class="p">:[</span>
|
||||
@ -202,67 +149,29 @@ dimensions.</p>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-summary">
|
||||
<h2>PC_Summary<a class="headerlink" href="#pc-summary" title="Link to this heading"></a></h2>
|
||||
<section id="pc-compress">
|
||||
<h2>PC_Compress<a class="headerlink" href="#pc-compress" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Summary(p pcpatch) returns text (from 1.1.0)<span class="colon">:</span></dt>
|
||||
<dt class="field-odd">PC_Compress(p pcpatch,global_compression_scheme text,compression_config text) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return a JSON formatted summary of the data in that point.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Summary</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span> <span class="s2">"npts"</span><span class="p">:</span><span class="mi">9</span><span class="p">,</span> <span class="s2">"srid"</span><span class="p">:</span><span class="mi">4326</span><span class="p">,</span> <span class="s2">"compr"</span><span class="p">:</span><span class="s2">"dimensional"</span><span class="p">,</span><span class="s2">"dims"</span><span class="p">:[{</span><span class="s2">"pos"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="s2">"name"</span><span class="p">:</span><span class="s2">"X"</span><span class="p">,</span><span class="s2">"size"</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="s2">"type"</span><span class="p">:</span><span class="s2">"int32_t"</span><span class="p">,</span><span class="s2">"compr"</span><span class="p">:</span><span class="s2">"sigbits"</span><span class="p">,</span><span class="s2">"stats"</span><span class="p">:{</span><span class="s2">"min"</span><span class="p">:</span><span class="o">-</span><span class="mf">126.99</span><span class="p">,</span><span class="s2">"max"</span><span class="p">:</span><span class="o">-</span><span class="mf">126.91</span><span class="p">,</span><span class="s2">"avg"</span><span class="p">:</span><span class="o">-</span><span class="mf">126.95</span><span class="p">}},{</span><span class="s2">"pos"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"name"</span><span class="p">:</span><span class="s2">"Y"</span><span class="p">,</span><span class="s2">"size"</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="s2">"type"</span><span class="p">:</span><span class="s2">"int32_t"</span><span class="p">,</span><span class="s2">"compr"</span><span class="p">:</span><span class="s2">"sigbits"</span><span class="p">,</span><span class="s2">"stats"</span><span class="p">:{</span><span class="s2">"min"</span><span class="p">:</span><span class="mf">45.01</span><span class="p">,</span><span class="s2">"max"</span><span class="p">:</span><span class="mf">45.09</span><span class="p">,</span><span class="s2">"avg"</span><span class="p">:</span><span class="mf">45.05</span><span class="p">}},{</span><span class="s2">"pos"</span><span class="p">:</span><span class="mi">2</span><span class="p">,</span><span class="s2">"name"</span><span class="p">:</span><span class="s2">"Z"</span><span class="p">,</span><span class="s2">"size"</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="s2">"type"</span><span class="p">:</span><span class="s2">"int32_t"</span><span class="p">,</span><span class="s2">"compr"</span><span class="p">:</span><span class="s2">"sigbits"</span><span class="p">,</span><span class="s2">"stats"</span><span class="p">:{</span><span class="s2">"min"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"max"</span><span class="p">:</span><span class="mi">9</span><span class="p">,</span><span class="s2">"avg"</span><span class="p">:</span><span class="mi">5</span><span class="p">}},{</span><span class="s2">"pos"</span><span class="p">:</span><span class="mi">3</span><span class="p">,</span><span class="s2">"name"</span><span class="p">:</span><span class="s2">"Intensity"</span><span class="p">,</span><span class="s2">"size"</span><span class="p">:</span><span class="mi">2</span><span class="p">,</span><span class="s2">"type"</span><span class="p">:</span><span class="s2">"uint16_t"</span><span class="p">,</span><span class="s2">"compr"</span><span class="p">:</span><span class="s2">"rle"</span><span class="p">,</span><span class="s2">"stats"</span><span class="p">:{</span><span class="s2">"min"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="s2">"max"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="s2">"avg"</span><span class="p">:</span><span class="mi">0</span><span class="p">}}]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-uncompress">
|
||||
<h2>PC_Uncompress<a class="headerlink" href="#pc-uncompress" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Uncompress(p pcpatch) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns an uncompressed version of the patch (compression type <code class="docutils literal notranslate"><span class="pre">none</span></code>). In
|
||||
order to return an uncompressed patch on the wire, this must be the outer
|
||||
function with return type pcpatch in your SQL query. All other functions that
|
||||
return pcpatch will compress output to the schema-specified compression before
|
||||
returning.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Uncompress</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span>
|
||||
<span class="n">WHERE</span> <span class="n">PC_NumPoints</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="mi">01010000000000000001000000</span><span class="n">C8CEFFFFF8110000102700000A00</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-union">
|
||||
<h2>PC_Union<a class="headerlink" href="#pc-union" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Union(p pcpatch[]) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Aggregate function merges a result set of pcpatch entries into a single pcpatch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">--</span> <span class="n">Compare</span> <span class="n">npoints</span><span class="p">(</span><span class="nb">sum</span><span class="p">(</span><span class="n">patches</span><span class="p">))</span> <span class="n">to</span> <span class="nb">sum</span><span class="p">(</span><span class="n">npoints</span><span class="p">(</span><span class="n">patches</span><span class="p">))</span>
|
||||
<span class="n">SELECT</span> <span class="n">PC_NumPoints</span><span class="p">(</span><span class="n">PC_Union</span><span class="p">(</span><span class="n">pa</span><span class="p">))</span> <span class="n">FROM</span> <span class="n">patches</span><span class="p">;</span>
|
||||
<span class="n">SELECT</span> <span class="n">Sum</span><span class="p">(</span><span class="n">PC_NumPoints</span><span class="p">(</span><span class="n">pa</span><span class="p">))</span> <span class="n">FROM</span> <span class="n">patches</span><span class="p">;</span>
|
||||
|
||||
<span class="mi">100</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-intersects">
|
||||
<h2>PC_Intersects<a class="headerlink" href="#pc-intersects" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Intersects(p1 pcpatch, p2 pcpatch) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns true if the bounds of p1 intersect the bounds of p2.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">--</span> <span class="n">Patch</span> <span class="n">should</span> <span class="n">intersect</span> <span class="n">itself</span>
|
||||
<span class="n">SELECT</span> <span class="n">PC_Intersects</span><span class="p">(</span>
|
||||
<span class="s1">'01010000000000000001000000C8CEFFFFF8110000102700000A00'</span><span class="p">::</span><span class="n">pcpatch</span><span class="p">,</span>
|
||||
<span class="s1">'01010000000000000001000000C8CEFFFFF8110000102700000A00'</span><span class="p">::</span><span class="n">pcpatch</span><span class="p">);</span>
|
||||
|
||||
<span class="n">t</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Compress a patch with a manually specified scheme. The compression_config
|
||||
semantic depends on the global compression scheme. Allowed global compression
|
||||
schemes are:</p>
|
||||
<ul>
|
||||
<li><p>auto: determined by pcid</p></li>
|
||||
<li><p>laz: no compression config supported</p></li>
|
||||
<li><p>dimensional: configuration is a comma-separated list of per-dimension compressions from this list</p>
|
||||
<blockquote>
|
||||
<div><ul class="simple">
|
||||
<li><p>auto: determined automatically from values stats</p></li>
|
||||
<li><p>zlib: deflate compression</p></li>
|
||||
<li><p>sigbits: significant bits removal</p></li>
|
||||
<li><p>rle: run-length encoding</p></li>
|
||||
</ul>
|
||||
</div></blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="pc-explode">
|
||||
<h2>PC_Explode<a class="headerlink" href="#pc-explode" title="Link to this heading"></a></h2>
|
||||
@ -290,29 +199,139 @@ each point in the patch.</p>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-patchmin">
|
||||
<h2>PC_PatchMin<a class="headerlink" href="#pc-patchmin" title="Link to this heading"></a></h2>
|
||||
<section id="pc-filterbetween">
|
||||
<h2>PC_FilterBetween<a class="headerlink" href="#pc-filterbetween" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_PatchMin(p pcpatch, dimname text) returns numeric<span class="colon">:</span></dt>
|
||||
<dt class="field-odd">PC_FilterBetween(p pcpatch, dimname text, float8 value1, float8 value2) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Reads the values of the requested dimension for all points in the patch and
|
||||
returns the minimum of those values. Dimension name must exist in the schema.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PatchMin</span><span class="p">(</span><span class="n">pa</span><span class="p">,</span> <span class="s1">'y'</span><span class="p">)</span>
|
||||
<p>Returns a patch with only points whose values are between (excluding) the
|
||||
supplied values for the requested dimension.</p>
|
||||
</section>
|
||||
<section id="pc-filterequals">
|
||||
<h2>PC_FilterEquals<a class="headerlink" href="#pc-filterequals" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_FilterEquals(p pcpatch, dimname text, float8 value) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a patch with only points whose values are the same as the supplied
|
||||
values for the requested dimension.</p>
|
||||
</section>
|
||||
<section id="pc-filtergreaterthan">
|
||||
<h2>PC_FilterGreaterThan<a class="headerlink" href="#pc-filtergreaterthan" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_FilterGreaterThan(p pcpatch, dimname text, float8 value) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a patch with only points whose values are greater than the supplied
|
||||
value for the requested dimension.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="n">PC_FilterGreaterThan</span><span class="p">(</span><span class="n">pa</span><span class="p">,</span> <span class="s1">'y'</span><span class="p">,</span> <span class="mf">45.57</span><span class="p">))</span>
|
||||
<span class="n">FROM</span> <span class="n">patches</span> <span class="n">WHERE</span> <span class="nb">id</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
|
||||
|
||||
<span class="mf">45.5</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pts"</span><span class="p">:[[</span><span class="o">-</span><span class="mf">126.42</span><span class="p">,</span><span class="mf">45.58</span><span class="p">,</span><span class="mi">58</span><span class="p">,</span><span class="mi">5</span><span class="p">],[</span><span class="o">-</span><span class="mf">126.41</span><span class="p">,</span><span class="mf">45.59</span><span class="p">,</span><span class="mi">59</span><span class="p">,</span><span class="mi">5</span><span class="p">]]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-filterlessthan">
|
||||
<h2>PC_FilterLessThan<a class="headerlink" href="#pc-filterlessthan" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_PatchMin(p pcpatch) returns pcpoint<span class="colon">:</span></dt>
|
||||
<dt class="field-odd">PC_FilterLessThan(p pcpatch, dimname text, float8 value) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a PcPoint with the minimum values of each dimension in the patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PatchMin</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span>
|
||||
<span class="n">FROM</span> <span class="n">patches</span> <span class="n">WHERE</span> <span class="nb">id</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
|
||||
<p>Returns a patch with only points whose values are less than the supplied value
|
||||
for the requested dimension.</p>
|
||||
</section>
|
||||
<section id="pc-intersects">
|
||||
<h2>PC_Intersects<a class="headerlink" href="#pc-intersects" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Intersects(p1 pcpatch, p2 pcpatch) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns true if the bounds of p1 intersect the bounds of p2.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">--</span> <span class="n">Patch</span> <span class="n">should</span> <span class="n">intersect</span> <span class="n">itself</span>
|
||||
<span class="n">SELECT</span> <span class="n">PC_Intersects</span><span class="p">(</span>
|
||||
<span class="s1">'01010000000000000001000000C8CEFFFFF8110000102700000A00'</span><span class="p">::</span><span class="n">pcpatch</span><span class="p">,</span>
|
||||
<span class="s1">'01010000000000000001000000C8CEFFFFF8110000102700000A00'</span><span class="p">::</span><span class="n">pcpatch</span><span class="p">);</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.5</span><span class="p">,</span><span class="mf">45.5</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
<span class="n">t</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-issorted">
|
||||
<h2>PC_IsSorted<a class="headerlink" href="#pc-issorted" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_IsSorted(p pcpatch, dimnames text[], strict boolean default true) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Checks whether a pcpatch is sorted lexicographically along the given
|
||||
dimensions. The <code class="docutils literal notranslate"><span class="pre">strict</span></code> option further checks that the ordering is strict
|
||||
(no duplicates).</p>
|
||||
</section>
|
||||
<section id="pc-makepatch">
|
||||
<h2>PC_MakePatch<a class="headerlink" href="#pc-makepatch" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_MakePatch(pcid integer, vals float8[]) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Given a valid pcid schema number and an array of doubles that matches the
|
||||
schema, construct a new pcpatch. Array size must be a multiple of the number of
|
||||
dimensions.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="n">PC_MakePatch</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="o">-</span><span class="mf">126.99</span><span class="p">,</span><span class="mf">45.01</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mf">126.98</span><span class="p">,</span><span class="mf">45.02</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mf">126.97</span><span class="p">,</span><span class="mf">45.03</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">]));</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pts"</span><span class="p">:[</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="mf">126.99</span><span class="p">,</span><span class="mf">45.01</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="o">-</span><span class="mf">126.98</span><span class="p">,</span><span class="mf">45.02</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="o">-</span><span class="mf">126.97</span><span class="p">,</span><span class="mf">45.03</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="p">]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-memsize">
|
||||
<h2>PC_MemSize<a class="headerlink" href="#pc-memsize" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_MemSize(p pcpatch) returns int4<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns the memory size of a pcpatch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_MemSize</span><span class="p">(</span><span class="n">PC_Patch</span><span class="p">(</span><span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="o">-</span><span class="mi">127</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mf">124.0</span><span class="p">,</span> <span class="mf">4.0</span><span class="p">])));</span>
|
||||
|
||||
<span class="mi">161</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-numpoints">
|
||||
<h2>PC_NumPoints<a class="headerlink" href="#pc-numpoints" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_NumPoints(p pcpatch) returns integer<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns the number of points in this patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_NumPoints</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="mi">9</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-pcid">
|
||||
<h2>PC_PCId<a class="headerlink" href="#pc-pcid" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_PCId(p pcpatch) returns integer<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns the pcid schema number of points in this patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PCId</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="mi">1</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-patch">
|
||||
<h2>PC_Patch<a class="headerlink" href="#pc-patch" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Patch(pts pcpoint[]) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Aggregate function that collects a result set of pcpoint values into a pcpatch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">INSERT</span> <span class="n">INTO</span> <span class="n">patches</span> <span class="p">(</span><span class="n">pa</span><span class="p">)</span>
|
||||
<span class="n">SELECT</span> <span class="n">PC_Patch</span><span class="p">(</span><span class="n">pt</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">points</span> <span class="n">GROUP</span> <span class="n">BY</span> <span class="nb">id</span><span class="o">/</span><span class="mi">10</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
@ -368,71 +387,31 @@ returns the maximum of those values. Dimension name must exist in the schema.</p
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-filtergreaterthan">
|
||||
<h2>PC_FilterGreaterThan<a class="headerlink" href="#pc-filtergreaterthan" title="Link to this heading"></a></h2>
|
||||
<section id="pc-patchmin">
|
||||
<h2>PC_PatchMin<a class="headerlink" href="#pc-patchmin" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_FilterGreaterThan(p pcpatch, dimname text, float8 value) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dt class="field-odd">PC_PatchMin(p pcpatch, dimname text) returns numeric<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a patch with only points whose values are greater than the supplied
|
||||
value for the requested dimension.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="n">PC_FilterGreaterThan</span><span class="p">(</span><span class="n">pa</span><span class="p">,</span> <span class="s1">'y'</span><span class="p">,</span> <span class="mf">45.57</span><span class="p">))</span>
|
||||
<p>Reads the values of the requested dimension for all points in the patch and
|
||||
returns the minimum of those values. Dimension name must exist in the schema.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PatchMin</span><span class="p">(</span><span class="n">pa</span><span class="p">,</span> <span class="s1">'y'</span><span class="p">)</span>
|
||||
<span class="n">FROM</span> <span class="n">patches</span> <span class="n">WHERE</span> <span class="nb">id</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pts"</span><span class="p">:[[</span><span class="o">-</span><span class="mf">126.42</span><span class="p">,</span><span class="mf">45.58</span><span class="p">,</span><span class="mi">58</span><span class="p">,</span><span class="mi">5</span><span class="p">],[</span><span class="o">-</span><span class="mf">126.41</span><span class="p">,</span><span class="mf">45.59</span><span class="p">,</span><span class="mi">59</span><span class="p">,</span><span class="mi">5</span><span class="p">]]}</span>
|
||||
<span class="mf">45.5</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-filterlessthan">
|
||||
<h2>PC_FilterLessThan<a class="headerlink" href="#pc-filterlessthan" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_FilterLessThan(p pcpatch, dimname text, float8 value) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dt class="field-odd">PC_PatchMin(p pcpatch) returns pcpoint<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a patch with only points whose values are less than the supplied value
|
||||
for the requested dimension.</p>
|
||||
</section>
|
||||
<section id="pc-filterbetween">
|
||||
<h2>PC_FilterBetween<a class="headerlink" href="#pc-filterbetween" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_FilterBetween(p pcpatch, dimname text, float8 value1, float8 value2) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a patch with only points whose values are between (excluding) the
|
||||
supplied values for the requested dimension.</p>
|
||||
</section>
|
||||
<section id="pc-filterequals">
|
||||
<h2>PC_FilterEquals<a class="headerlink" href="#pc-filterequals" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_FilterEquals(p pcpatch, dimname text, float8 value) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a patch with only points whose values are the same as the supplied
|
||||
values for the requested dimension.</p>
|
||||
</section>
|
||||
<section id="pc-compress">
|
||||
<h2>PC_Compress<a class="headerlink" href="#pc-compress" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Compress(p pcpatch,global_compression_scheme text,compression_config text) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Compress a patch with a manually specified scheme. The compression_config
|
||||
semantic depends on the global compression scheme. Allowed global compression
|
||||
schemes are:</p>
|
||||
<ul>
|
||||
<li><p>auto: determined by pcid</p></li>
|
||||
<li><p>laz: no compression config supported</p></li>
|
||||
<li><p>dimensional: configuration is a comma-separated list of per-dimension compressions from this list</p>
|
||||
<blockquote>
|
||||
<div><ul class="simple">
|
||||
<li><p>auto: determined automatically from values stats</p></li>
|
||||
<li><p>zlib: deflate compression</p></li>
|
||||
<li><p>sigbits: significant bits removal</p></li>
|
||||
<li><p>rle: run-length encoding</p></li>
|
||||
</ul>
|
||||
</div></blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Returns a PcPoint with the minimum values of each dimension in the patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PatchMin</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span>
|
||||
<span class="n">FROM</span> <span class="n">patches</span> <span class="n">WHERE</span> <span class="nb">id</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.5</span><span class="p">,</span><span class="mf">45.5</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-pointn">
|
||||
<h2>PC_PointN<a class="headerlink" href="#pc-pointn" title="Link to this heading"></a></h2>
|
||||
@ -443,25 +422,6 @@ schemes are:</p>
|
||||
<p>Returns the n-th point of the patch with 1-based indexing. Negative n counts
|
||||
point from the end.</p>
|
||||
</section>
|
||||
<section id="pc-issorted">
|
||||
<h2>PC_IsSorted<a class="headerlink" href="#pc-issorted" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_IsSorted(p pcpatch, dimnames text[], strict boolean default true) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Checks whether a pcpatch is sorted lexicographically along the given
|
||||
dimensions. The <code class="docutils literal notranslate"><span class="pre">strict</span></code> option further checks that the ordering is strict
|
||||
(no duplicates).</p>
|
||||
</section>
|
||||
<section id="pc-sort">
|
||||
<h2>PC_Sort<a class="headerlink" href="#pc-sort" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Sort(p pcpatch, dimnames text[]) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a copy of the input patch lexicographically sorted along the given
|
||||
dimensions.</p>
|
||||
</section>
|
||||
<section id="pc-range">
|
||||
<h2>PC_Range<a class="headerlink" href="#pc-range" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
@ -482,6 +442,28 @@ start-th point with 1-based indexing.</p>
|
||||
value <code class="docutils literal notranslate"><span class="pre">def</span></code> is set in the points of the output patch. <code class="docutils literal notranslate"><span class="pre">def</span></code> is optional,
|
||||
its default value is <code class="docutils literal notranslate"><span class="pre">0.0</span></code>.</p>
|
||||
</section>
|
||||
<section id="pc-sort">
|
||||
<h2>PC_Sort<a class="headerlink" href="#pc-sort" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Sort(p pcpatch, dimnames text[]) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a copy of the input patch lexicographically sorted along the given
|
||||
dimensions.</p>
|
||||
</section>
|
||||
<section id="pc-summary">
|
||||
<h2>PC_Summary<a class="headerlink" href="#pc-summary" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Summary(p pcpatch) returns text (from 1.1.0)<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a JSON formatted summary of the data in that point.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Summary</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span> <span class="s2">"npts"</span><span class="p">:</span><span class="mi">9</span><span class="p">,</span> <span class="s2">"srid"</span><span class="p">:</span><span class="mi">4326</span><span class="p">,</span> <span class="s2">"compr"</span><span class="p">:</span><span class="s2">"dimensional"</span><span class="p">,</span><span class="s2">"dims"</span><span class="p">:[{</span><span class="s2">"pos"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="s2">"name"</span><span class="p">:</span><span class="s2">"X"</span><span class="p">,</span><span class="s2">"size"</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="s2">"type"</span><span class="p">:</span><span class="s2">"int32_t"</span><span class="p">,</span><span class="s2">"compr"</span><span class="p">:</span><span class="s2">"sigbits"</span><span class="p">,</span><span class="s2">"stats"</span><span class="p">:{</span><span class="s2">"min"</span><span class="p">:</span><span class="o">-</span><span class="mf">126.99</span><span class="p">,</span><span class="s2">"max"</span><span class="p">:</span><span class="o">-</span><span class="mf">126.91</span><span class="p">,</span><span class="s2">"avg"</span><span class="p">:</span><span class="o">-</span><span class="mf">126.95</span><span class="p">}},{</span><span class="s2">"pos"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"name"</span><span class="p">:</span><span class="s2">"Y"</span><span class="p">,</span><span class="s2">"size"</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="s2">"type"</span><span class="p">:</span><span class="s2">"int32_t"</span><span class="p">,</span><span class="s2">"compr"</span><span class="p">:</span><span class="s2">"sigbits"</span><span class="p">,</span><span class="s2">"stats"</span><span class="p">:{</span><span class="s2">"min"</span><span class="p">:</span><span class="mf">45.01</span><span class="p">,</span><span class="s2">"max"</span><span class="p">:</span><span class="mf">45.09</span><span class="p">,</span><span class="s2">"avg"</span><span class="p">:</span><span class="mf">45.05</span><span class="p">}},{</span><span class="s2">"pos"</span><span class="p">:</span><span class="mi">2</span><span class="p">,</span><span class="s2">"name"</span><span class="p">:</span><span class="s2">"Z"</span><span class="p">,</span><span class="s2">"size"</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="s2">"type"</span><span class="p">:</span><span class="s2">"int32_t"</span><span class="p">,</span><span class="s2">"compr"</span><span class="p">:</span><span class="s2">"sigbits"</span><span class="p">,</span><span class="s2">"stats"</span><span class="p">:{</span><span class="s2">"min"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"max"</span><span class="p">:</span><span class="mi">9</span><span class="p">,</span><span class="s2">"avg"</span><span class="p">:</span><span class="mi">5</span><span class="p">}},{</span><span class="s2">"pos"</span><span class="p">:</span><span class="mi">3</span><span class="p">,</span><span class="s2">"name"</span><span class="p">:</span><span class="s2">"Intensity"</span><span class="p">,</span><span class="s2">"size"</span><span class="p">:</span><span class="mi">2</span><span class="p">,</span><span class="s2">"type"</span><span class="p">:</span><span class="s2">"uint16_t"</span><span class="p">,</span><span class="s2">"compr"</span><span class="p">:</span><span class="s2">"rle"</span><span class="p">,</span><span class="s2">"stats"</span><span class="p">:{</span><span class="s2">"min"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="s2">"max"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="s2">"avg"</span><span class="p">:</span><span class="mi">0</span><span class="p">}}]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-transform">
|
||||
<h2>PC_Transform<a class="headerlink" href="#pc-transform" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
@ -497,16 +479,36 @@ its default value is <code class="docutils literal notranslate"><span class="pre
|
||||
data if dimension interpretations, scales or offsets are different in the new
|
||||
schema.</p>
|
||||
</section>
|
||||
<section id="pc-memsize">
|
||||
<h2>PC_MemSize<a class="headerlink" href="#pc-memsize" title="Link to this heading"></a></h2>
|
||||
<section id="pc-uncompress">
|
||||
<h2>PC_Uncompress<a class="headerlink" href="#pc-uncompress" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_MemSize(p pcpatch) returns int4<span class="colon">:</span></dt>
|
||||
<dt class="field-odd">PC_Uncompress(p pcpatch) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the memory size of a pcpatch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_MemSize</span><span class="p">(</span><span class="n">PC_Patch</span><span class="p">(</span><span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="o">-</span><span class="mi">127</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mf">124.0</span><span class="p">,</span> <span class="mf">4.0</span><span class="p">])));</span>
|
||||
<p>Returns an uncompressed version of the patch (compression type <code class="docutils literal notranslate"><span class="pre">none</span></code>). In
|
||||
order to return an uncompressed patch on the wire, this must be the outer
|
||||
function with return type pcpatch in your SQL query. All other functions that
|
||||
return pcpatch will compress output to the schema-specified compression before
|
||||
returning.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Uncompress</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">patches</span>
|
||||
<span class="n">WHERE</span> <span class="n">PC_NumPoints</span><span class="p">(</span><span class="n">pa</span><span class="p">)</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="mi">161</span>
|
||||
<span class="mi">01010000000000000001000000</span><span class="n">C8CEFFFFF8110000102700000A00</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-union">
|
||||
<h2>PC_Union<a class="headerlink" href="#pc-union" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Union(p pcpatch[]) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Aggregate function merges a result set of pcpatch entries into a single pcpatch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">--</span> <span class="n">Compare</span> <span class="n">npoints</span><span class="p">(</span><span class="nb">sum</span><span class="p">(</span><span class="n">patches</span><span class="p">))</span> <span class="n">to</span> <span class="nb">sum</span><span class="p">(</span><span class="n">npoints</span><span class="p">(</span><span class="n">patches</span><span class="p">))</span>
|
||||
<span class="n">SELECT</span> <span class="n">PC_NumPoints</span><span class="p">(</span><span class="n">PC_Union</span><span class="p">(</span><span class="n">pa</span><span class="p">))</span> <span class="n">FROM</span> <span class="n">patches</span><span class="p">;</span>
|
||||
<span class="n">SELECT</span> <span class="n">Sum</span><span class="p">(</span><span class="n">PC_NumPoints</span><span class="p">(</span><span class="n">pa</span><span class="p">))</span> <span class="n">FROM</span> <span class="n">patches</span><span class="p">;</span>
|
||||
|
||||
<span class="mi">100</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||||
<link rel="next" title="PcPatch" href="patchs.html" />
|
||||
<link rel="prev" title="Functions" href="index.html" />
|
||||
<link rel="prev" title="Schema" href="schema.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
@ -55,17 +55,19 @@
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Functions</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="schema.html">Schema</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">PcPoint</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-makepoint">PC_MakePoint</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-astext">PC_AsText</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-pcid">PC_PCId</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-get">PC_Get</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-makepoint">PC_MakePoint</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-memsize">PC_MemSize</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-pcid">PC_PCId</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html">PcPatch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html">WKB</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html">PostGIS</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html">Utils</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -110,6 +112,43 @@
|
||||
|
||||
<section id="pcpoint">
|
||||
<span id="points"></span><h1>PcPoint<a class="headerlink" href="#pcpoint" title="Link to this heading"></a></h1>
|
||||
<section id="pc-astext">
|
||||
<h2>PC_AsText<a class="headerlink" href="#pc-astext" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_AsText(p pcpoint) returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a JSON version of the data in that point.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="s1">'010100000064CEFFFF94110000703000000400'</span><span class="p">::</span><span class="n">pcpoint</span><span class="p">);</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mi">127</span><span class="p">,</span><span class="mi">45</span><span class="p">,</span><span class="mi">124</span><span class="p">,</span><span class="mi">4</span><span class="p">]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-get">
|
||||
<h2>PC_Get<a class="headerlink" href="#pc-get" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Get(pt pcpoint) returns float8[]<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns values of all dimensions in an array.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Get</span><span class="p">(</span><span class="s1">'010100000064CEFFFF94110000703000000400'</span><span class="p">::</span><span class="n">pcpoint</span><span class="p">);</span>
|
||||
|
||||
<span class="p">{</span><span class="o">-</span><span class="mi">127</span><span class="p">,</span><span class="mi">45</span><span class="p">,</span><span class="mi">124</span><span class="p">,</span><span class="mi">4</span><span class="p">}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Get(pt pcpoint, dimname text) returns numeric<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns the numeric value of the named dimension. The dimension name must exist
|
||||
in the schema.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Get</span><span class="p">(</span><span class="s1">'010100000064CEFFFF94110000703000000400'</span><span class="p">::</span><span class="n">pcpoint</span><span class="p">,</span> <span class="s1">'Intensity'</span><span class="p">);</span>
|
||||
|
||||
<span class="mi">4</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-makepoint">
|
||||
<h2>PC_MakePoint<a class="headerlink" href="#pc-makepoint" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
@ -137,16 +176,16 @@ schema, construct a new pcpoint.</p>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-astext">
|
||||
<h2>PC_AsText<a class="headerlink" href="#pc-astext" title="Link to this heading"></a></h2>
|
||||
<section id="pc-memsize">
|
||||
<h2>PC_MemSize<a class="headerlink" href="#pc-memsize" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_AsText(p pcpoint) returns text<span class="colon">:</span></dt>
|
||||
<dt class="field-odd">PC_MemSize(pt pcpoint) returns int4<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return a JSON version of the data in that point.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="s1">'010100000064CEFFFF94110000703000000400'</span><span class="p">::</span><span class="n">pcpoint</span><span class="p">);</span>
|
||||
<p>Returns the memory size of a pcpoint.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_MemSize</span><span class="p">(</span><span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="o">-</span><span class="mi">127</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mf">124.0</span><span class="p">,</span> <span class="mf">4.0</span><span class="p">]));</span>
|
||||
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mi">127</span><span class="p">,</span><span class="mi">45</span><span class="p">,</span><span class="mi">124</span><span class="p">,</span><span class="mi">4</span><span class="p">]}</span>
|
||||
<span class="mi">25</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
@ -156,57 +195,20 @@ schema, construct a new pcpoint.</p>
|
||||
<dt class="field-odd">PC_PCId(p pcpoint) returns integer (from 1.1.0)<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the pcid schema number of this point.</p>
|
||||
<p>Returns the pcid schema number of this point.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PCId</span><span class="p">(</span><span class="s1">'010100000064CEFFFF94110000703000000400'</span><span class="p">::</span><span class="n">pcpoint</span><span class="p">);</span>
|
||||
|
||||
<span class="mi">1</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-get">
|
||||
<h2>PC_Get<a class="headerlink" href="#pc-get" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Get(pt pcpoint) returns float8[]<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return values of all dimensions in an array.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Get</span><span class="p">(</span><span class="s1">'010100000064CEFFFF94110000703000000400'</span><span class="p">::</span><span class="n">pcpoint</span><span class="p">);</span>
|
||||
|
||||
<span class="p">{</span><span class="o">-</span><span class="mi">127</span><span class="p">,</span><span class="mi">45</span><span class="p">,</span><span class="mi">124</span><span class="p">,</span><span class="mi">4</span><span class="p">}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Get(pt pcpoint, dimname text) returns numeric<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the numeric value of the named dimension. The dimension name must exist
|
||||
in the schema.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Get</span><span class="p">(</span><span class="s1">'010100000064CEFFFF94110000703000000400'</span><span class="p">::</span><span class="n">pcpoint</span><span class="p">,</span> <span class="s1">'Intensity'</span><span class="p">);</span>
|
||||
|
||||
<span class="mi">4</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-memsize">
|
||||
<h2>PC_MemSize<a class="headerlink" href="#pc-memsize" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_MemSize(pt pcpoint) returns int4<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the memory size of a pcpoint.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_MemSize</span><span class="p">(</span><span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="o">-</span><span class="mi">127</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mf">124.0</span><span class="p">,</span> <span class="mf">4.0</span><span class="p">]));</span>
|
||||
|
||||
<span class="mi">25</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="index.html" class="btn btn-neutral float-left" title="Functions" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="schema.html" class="btn btn-neutral float-left" title="Schema" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="patchs.html" class="btn btn-neutral float-right" title="PcPatch" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||||
<link rel="next" title="Update" href="../update.html" />
|
||||
<link rel="next" title="Utils" href="utils.html" />
|
||||
<link rel="prev" title="WKB" href="wkb.html" />
|
||||
</head>
|
||||
|
||||
@ -55,17 +55,19 @@
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Functions</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="schema.html">Schema</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html">PcPoint</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html">PcPatch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html">WKB</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">PostGIS</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-intersects">PC_Intersects</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-intersection">PC_Intersection</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#geometry">Geometry</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-envelopegeometry">PC_EnvelopeGeometry</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-boundingdiagonalgeometry">PC_BoundingDiagonalGeometry</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-envelopegeometry">PC_EnvelopeGeometry</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-intersection">PC_Intersection</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-intersects">PC_Intersects</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html">Utils</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -109,7 +111,7 @@
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="postgis">
|
||||
<span id="points"></span><h1>PostGIS<a class="headerlink" href="#postgis" title="Link to this heading"></a></h1>
|
||||
<span id="id1"></span><h1>PostGIS<a class="headerlink" href="#postgis" title="Link to this heading"></a></h1>
|
||||
<p>The <code class="docutils literal notranslate"><span class="pre">pointcloud_postgis</span></code> extension adds functions that allow you to use
|
||||
PostgreSQL Pointcloud with PostGIS, converting <code class="docutils literal notranslate"><span class="pre">PcPoint</span></code> and <code class="docutils literal notranslate"><span class="pre">PcPatch</span></code> to
|
||||
Geometry and doing spatial filtering on point cloud data. The
|
||||
@ -120,44 +122,6 @@ Geometry and doing spatial filtering on point cloud data. The
|
||||
<span class="k">CREATE</span><span class="w"> </span><span class="n">EXTENSION</span><span class="w"> </span><span class="n">pointcloud_postgis</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<section id="pc-intersects">
|
||||
<h2>PC_Intersects<a class="headerlink" href="#pc-intersects" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Intersects(p pcpatch, g geometry) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
<dt class="field-even">PC_Intersects(g geometry, p pcpatch) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns true if the bounds of the patch intersect the geometry.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Intersects</span><span class="p">(</span><span class="s1">'SRID=4326;POINT(-126.451 45.552)'</span><span class="p">::</span><span class="n">geometry</span><span class="p">,</span> <span class="n">pa</span><span class="p">)</span>
|
||||
<span class="n">FROM</span> <span class="n">patches</span> <span class="n">WHERE</span> <span class="nb">id</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
|
||||
|
||||
<span class="n">t</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-intersection">
|
||||
<h2>PC_Intersection<a class="headerlink" href="#pc-intersection" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Intersection(pcpatch, geometry) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a PcPatch which only contains points that intersected the geometry.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="n">PC_Explode</span><span class="p">(</span><span class="n">PC_Intersection</span><span class="p">(</span>
|
||||
<span class="n">pa</span><span class="p">,</span>
|
||||
<span class="s1">'SRID=4326;POLYGON((-126.451 45.552, -126.42 47.55, -126.40 45.552, -126.451 45.552))'</span><span class="p">::</span><span class="n">geometry</span>
|
||||
<span class="p">)))</span>
|
||||
<span class="n">FROM</span> <span class="n">patches</span> <span class="n">WHERE</span> <span class="nb">id</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
|
||||
|
||||
<span class="n">pc_astext</span>
|
||||
<span class="o">--------------------------------------</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.44</span><span class="p">,</span><span class="mf">45.56</span><span class="p">,</span><span class="mi">56</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.43</span><span class="p">,</span><span class="mf">45.57</span><span class="p">,</span><span class="mi">57</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.42</span><span class="p">,</span><span class="mf">45.58</span><span class="p">,</span><span class="mi">58</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.41</span><span class="p">,</span><span class="mf">45.59</span><span class="p">,</span><span class="mi">59</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="geometry">
|
||||
<h2>Geometry<a class="headerlink" href="#geometry" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
@ -174,24 +138,6 @@ Geometry and doing spatial filtering on point cloud data. The
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-envelopegeometry">
|
||||
<h2>PC_EnvelopeGeometry<a class="headerlink" href="#pc-envelopegeometry" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_EnvelopeGeometry(pcpatch) returns geometry<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns the 2D bounds of the patch as a PostGIS Polygon 2D. Useful for
|
||||
performing 2D intersection tests with PostGIS geometries.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">ST_AsText</span><span class="p">(</span><span class="n">PC_EnvelopeGeometry</span><span class="p">(</span><span class="n">pa</span><span class="p">))</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="n">POLYGON</span><span class="p">((</span><span class="o">-</span><span class="mf">126.99</span> <span class="mf">45.01</span><span class="p">,</span><span class="o">-</span><span class="mf">126.99</span> <span class="mf">45.09</span><span class="p">,</span><span class="o">-</span><span class="mf">126.91</span> <span class="mf">45.09</span><span class="p">,</span><span class="o">-</span><span class="mf">126.91</span> <span class="mf">45.01</span><span class="p">,</span><span class="o">-</span><span class="mf">126.99</span> <span class="mf">45.01</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>For example, this is how one may want to create an index:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">CREATE</span> <span class="n">INDEX</span> <span class="n">ON</span> <span class="n">patches</span> <span class="n">USING</span> <span class="n">GIST</span><span class="p">(</span><span class="n">PC_EnvelopeGeometry</span><span class="p">(</span><span class="n">patch</span><span class="p">));</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-boundingdiagonalgeometry">
|
||||
<h2>PC_BoundingDiagonalGeometry<a class="headerlink" href="#pc-boundingdiagonalgeometry" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
@ -223,6 +169,62 @@ index on a patch column.</p>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-envelopegeometry">
|
||||
<h2>PC_EnvelopeGeometry<a class="headerlink" href="#pc-envelopegeometry" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_EnvelopeGeometry(pcpatch) returns geometry<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns the 2D bounds of the patch as a PostGIS Polygon 2D. Useful for
|
||||
performing 2D intersection tests with PostGIS geometries.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">ST_AsText</span><span class="p">(</span><span class="n">PC_EnvelopeGeometry</span><span class="p">(</span><span class="n">pa</span><span class="p">))</span> <span class="n">FROM</span> <span class="n">patches</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="n">POLYGON</span><span class="p">((</span><span class="o">-</span><span class="mf">126.99</span> <span class="mf">45.01</span><span class="p">,</span><span class="o">-</span><span class="mf">126.99</span> <span class="mf">45.09</span><span class="p">,</span><span class="o">-</span><span class="mf">126.91</span> <span class="mf">45.09</span><span class="p">,</span><span class="o">-</span><span class="mf">126.91</span> <span class="mf">45.01</span><span class="p">,</span><span class="o">-</span><span class="mf">126.99</span> <span class="mf">45.01</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>For example, this is how one may want to create an index:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">CREATE</span> <span class="n">INDEX</span> <span class="n">ON</span> <span class="n">patches</span> <span class="n">USING</span> <span class="n">GIST</span><span class="p">(</span><span class="n">PC_EnvelopeGeometry</span><span class="p">(</span><span class="n">patch</span><span class="p">));</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-intersection">
|
||||
<h2>PC_Intersection<a class="headerlink" href="#pc-intersection" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Intersection(pcpatch, geometry) returns pcpatch<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns a PcPatch which only contains points that intersected the geometry.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_AsText</span><span class="p">(</span><span class="n">PC_Explode</span><span class="p">(</span><span class="n">PC_Intersection</span><span class="p">(</span>
|
||||
<span class="n">pa</span><span class="p">,</span>
|
||||
<span class="s1">'SRID=4326;POLYGON((-126.451 45.552, -126.42 47.55, -126.40 45.552, -126.451 45.552))'</span><span class="p">::</span><span class="n">geometry</span>
|
||||
<span class="p">)))</span>
|
||||
<span class="n">FROM</span> <span class="n">patches</span> <span class="n">WHERE</span> <span class="nb">id</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
|
||||
|
||||
<span class="n">pc_astext</span>
|
||||
<span class="o">--------------------------------------</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.44</span><span class="p">,</span><span class="mf">45.56</span><span class="p">,</span><span class="mi">56</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.43</span><span class="p">,</span><span class="mf">45.57</span><span class="p">,</span><span class="mi">57</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.42</span><span class="p">,</span><span class="mf">45.58</span><span class="p">,</span><span class="mi">58</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
<span class="p">{</span><span class="s2">"pcid"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="s2">"pt"</span><span class="p">:[</span><span class="o">-</span><span class="mf">126.41</span><span class="p">,</span><span class="mf">45.59</span><span class="p">,</span><span class="mi">59</span><span class="p">,</span><span class="mi">5</span><span class="p">]}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-intersects">
|
||||
<h2>PC_Intersects<a class="headerlink" href="#pc-intersects" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Intersects(p pcpatch, g geometry) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
<dt class="field-even">PC_Intersects(g geometry, p pcpatch) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-even"><p></p></dd>
|
||||
</dl>
|
||||
<p>Returns true if the bounds of the patch intersect the geometry.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Intersects</span><span class="p">(</span><span class="s1">'SRID=4326;POINT(-126.451 45.552)'</span><span class="p">::</span><span class="n">geometry</span><span class="p">,</span> <span class="n">pa</span><span class="p">)</span>
|
||||
<span class="n">FROM</span> <span class="n">patches</span> <span class="n">WHERE</span> <span class="nb">id</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
|
||||
|
||||
<span class="n">t</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
@ -230,7 +232,7 @@ index on a patch column.</p>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="wkb.html" class="btn btn-neutral float-left" title="WKB" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="../update.html" class="btn btn-neutral float-right" title="Update" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
<a href="utils.html" class="btn btn-neutral float-right" title="Utils" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
181
functions/schema.html
Normal file
181
functions/schema.html
Normal file
@ -0,0 +1,181 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" data-content_root="../">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Schema — pgpointcloud</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=03e43079" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=e59714d7" />
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||
<script src="../_static/documentation_options.js?v=36f53d34"></script>
|
||||
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
<script src="../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||||
<link rel="next" title="PcPoint" href="points.html" />
|
||||
<link rel="prev" title="Functions" href="index.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="../index.html" class="icon icon-home">
|
||||
pgPointcloud
|
||||
</a>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../concepts/index.html">Concepts</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../install.html">Install</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../quickstart.html">Getting Started</a></li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Functions</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Schema</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-schemagetndims">PC_SchemaGetNDims</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-schemaisvalid">PC_SchemaIsValid</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html">PcPoint</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html">PcPatch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html">WKB</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html">PostGIS</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html">Utils</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../update.html">Update</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../tutorials/index.html">Tutorials</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../development.html">Development</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../community.html">Community</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../faq.html">FAQ</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../copyright.html">License</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../index.html">pgPointcloud</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||
<li class="breadcrumb-item"><a href="index.html">Functions</a></li>
|
||||
<li class="breadcrumb-item active">Schema</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="schema">
|
||||
<span id="id1"></span><h1>Schema<a class="headerlink" href="#schema" title="Link to this heading"></a></h1>
|
||||
<section id="pc-schemagetndims">
|
||||
<h2>PC_SchemaGetNDims<a class="headerlink" href="#pc-schemagetndims" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_SchemaGetNDims(pcid integer) returns integer<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the number of dimensions in the corresponding schema.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_SchemaGetNDims</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
|
||||
|
||||
<span class="mi">18</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-schemaisvalid">
|
||||
<h2>PC_SchemaIsValid<a class="headerlink" href="#pc-schemaisvalid" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_SchemaIsValid(xml text) returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return <cite>true</cite> if the pointcloud schema is valid.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_SchemaIsValid</span><span class="p">(</span><span class="n">schema</span><span class="p">)</span> <span class="n">FROM</span> <span class="n">pointcloud_formats</span> <span class="n">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
|
||||
|
||||
<span class="n">t</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="index.html" class="btn btn-neutral float-left" title="Functions" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="points.html" class="btn btn-neutral float-right" title="PcPoint" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p></p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
© 2025
|
||||
<a href="https://github.com/pramsey">Paul Ramsey</a>,
|
||||
<a href="http://github.com/pblottiere">Paul Blottiere</a>,
|
||||
<a href="http://github.com/mbredif">Mathieu Brédif</a>,
|
||||
<a href="http://github.com/elemoine">Eric Lemoine</a>,
|
||||
and
|
||||
<a href="https://github.com/pgpointcloud/pointcloud/graphs/contributors">others</a>,
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
268
functions/utils.html
Normal file
268
functions/utils.html
Normal file
@ -0,0 +1,268 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" data-content_root="../">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Utils — pgpointcloud</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=03e43079" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=e59714d7" />
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="../_static/favicon.ico"/>
|
||||
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||
<script src="../_static/documentation_options.js?v=36f53d34"></script>
|
||||
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
<script src="../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||||
<link rel="next" title="Update" href="../update.html" />
|
||||
<link rel="prev" title="PostGIS" href="postgis.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="../index.html" class="icon icon-home">
|
||||
pgPointcloud
|
||||
</a>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../concepts/index.html">Concepts</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../install.html">Install</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../quickstart.html">Getting Started</a></li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Functions</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="schema.html">Schema</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html">PcPoint</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html">PcPatch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="wkb.html">WKB</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html">PostGIS</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Utils</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-full-version">PC_Full_Version</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-lazperf-enabled">PC_Lazperf_Enabled</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-libxml2-version">PC_LibXML2_Version</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-lib-version">PC_Lib_Version</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-pgsql-version">PC_PGSQL_Version</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-postgis-version">PC_PostGIS_Version</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-script-version">PC_Script_Version</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-version">PC_Version</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../update.html">Update</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../tutorials/index.html">Tutorials</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../development.html">Development</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../community.html">Community</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../faq.html">FAQ</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../copyright.html">License</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../index.html">pgPointcloud</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||
<li class="breadcrumb-item"><a href="index.html">Functions</a></li>
|
||||
<li class="breadcrumb-item active">Utils</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="utils">
|
||||
<span id="id1"></span><h1>Utils<a class="headerlink" href="#utils" title="Link to this heading"></a></h1>
|
||||
<section id="pc-full-version">
|
||||
<h2>PC_Full_Version<a class="headerlink" href="#pc-full-version" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Full_Version() returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return a composite version string summarizing pointcloud system components.
|
||||
Includes library, SQL, libxml2, PostgreSQL interface versions, and LAZperf
|
||||
support flag. Useful for debugging or verifying runtime compatibility of the
|
||||
pointcloud extension.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Full_Version</span><span class="p">();</span>
|
||||
|
||||
<span class="n">POINTCLOUD</span><span class="o">=</span><span class="s2">"1.2.5 2346cc2"</span> <span class="n">PGSQL</span><span class="o">=</span><span class="s2">"170"</span> <span class="n">LIBXML2</span><span class="o">=</span><span class="s2">"2.14.3 LAZPERF enabled=false</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-lazperf-enabled">
|
||||
<h2>PC_Lazperf_Enabled<a class="headerlink" href="#pc-lazperf-enabled" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Lazperf_Enabled() returns boolean<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return <cite>true</cite> if the pointcloud extension includes LAZperf compression support.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Lazperf_Enabled</span><span class="p">();</span>
|
||||
|
||||
<span class="n">t</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-libxml2-version">
|
||||
<h2>PC_LibXML2_Version<a class="headerlink" href="#pc-libxml2-version" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_LibXML2_Version() returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the <cite>libxml2</cite> version number.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_LibXML2_Version</span><span class="p">();</span>
|
||||
|
||||
<span class="mf">2.14.3</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-lib-version">
|
||||
<h2>PC_Lib_Version<a class="headerlink" href="#pc-lib-version" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Lib_Version() returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the library version number.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Lib_Version</span><span class="p">();</span>
|
||||
|
||||
<span class="mf">1.2.5</span> <span class="mi">2346</span><span class="n">cc2</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-pgsql-version">
|
||||
<h2>PC_PGSQL_Version<a class="headerlink" href="#pc-pgsql-version" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_PGSQL_Version() returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the <cite>pgsql</cite> version number.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PGSQL_Version</span><span class="p">();</span>
|
||||
|
||||
<span class="mi">170</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-postgis-version">
|
||||
<h2>PC_PostGIS_Version<a class="headerlink" href="#pc-postgis-version" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_PostGIS_Version() returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the PostGIS extension version number.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_PostGIS_Version</span><span class="p">();</span>
|
||||
|
||||
<span class="mf">1.2.5</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-script-version">
|
||||
<h2>PC_Script_Version<a class="headerlink" href="#pc-script-version" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Script_Version() returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the script version number.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Script_Version</span><span class="p">();</span>
|
||||
|
||||
<span class="mf">1.2.5</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-version">
|
||||
<h2>PC_Version<a class="headerlink" href="#pc-version" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_Version() returns text<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the extension version number.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_Version</span><span class="p">();</span>
|
||||
|
||||
<span class="mf">1.2.5</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="postgis.html" class="btn btn-neutral float-left" title="PostGIS" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="../update.html" class="btn btn-neutral float-right" title="Update" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p></p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
© 2025
|
||||
<a href="https://github.com/pramsey">Paul Ramsey</a>,
|
||||
<a href="http://github.com/pblottiere">Paul Blottiere</a>,
|
||||
<a href="http://github.com/mbredif">Mathieu Brédif</a>,
|
||||
<a href="http://github.com/elemoine">Eric Lemoine</a>,
|
||||
and
|
||||
<a href="https://github.com/pgpointcloud/pointcloud/graphs/contributors">others</a>,
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -55,15 +55,17 @@
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Functions</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="schema.html">Schema</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="points.html">PcPoint</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="patchs.html">PcPatch</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">WKB</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-asbinary">PC_AsBinary</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-envelopeasbinary">PC_EnvelopeAsBinary</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-boundingdiagonalasbinary">PC_BoundingDiagonalAsBinary</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#pc-envelopeasbinary">PC_EnvelopeAsBinary</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="postgis.html">PostGIS</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils.html">Utils</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -107,7 +109,7 @@
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="wkb">
|
||||
<span id="points"></span><h1>WKB<a class="headerlink" href="#wkb" title="Link to this heading"></a></h1>
|
||||
<span id="id1"></span><h1>WKB<a class="headerlink" href="#wkb" title="Link to this heading"></a></h1>
|
||||
<section id="pc-asbinary">
|
||||
<h2>PC_AsBinary<a class="headerlink" href="#pc-asbinary" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
@ -121,6 +123,20 @@
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-boundingdiagonalasbinary">
|
||||
<h2>PC_BoundingDiagonalAsBinary<a class="headerlink" href="#pc-boundingdiagonalasbinary" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_BoundingDiagonalAsBinary(p pcpatch) returns bytea<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the OGC “well-known binary” format for the bounding diagonal of the
|
||||
patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_BoundingDiagonalAsBinary</span><span class="p">(</span> <span class="n">PC_Patch</span><span class="p">(</span><span class="n">ARRAY</span><span class="p">[</span> <span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">,</span><span class="mf">10.</span><span class="p">]),</span> <span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="mf">1.</span><span class="p">,</span><span class="mf">1.</span><span class="p">,</span><span class="mf">1.</span><span class="p">,</span><span class="mf">10.</span><span class="p">]),</span> <span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="mf">10.</span><span class="p">,</span><span class="mf">10.</span><span class="p">,</span><span class="mf">10.</span><span class="p">,</span><span class="mf">10.</span><span class="p">])]));</span>
|
||||
|
||||
\<span class="n">x01020000a0e610000002000000000000000000000000000000000000000000000000000000000000000000244000000000000024400000000000002440</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="pc-envelopeasbinary">
|
||||
<h2>PC_EnvelopeAsBinary<a class="headerlink" href="#pc-envelopeasbinary" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
@ -141,20 +157,6 @@ Useful for performing 2D intersection tests with geometries.</p>
|
||||
deprecated and will be removed in a future version (2.0) of the extension.
|
||||
<code class="docutils literal notranslate"><span class="pre">PC_EnvelopeAsBinary</span></code> is to be used instead.</p>
|
||||
</section>
|
||||
<section id="pc-boundingdiagonalasbinary">
|
||||
<h2>PC_BoundingDiagonalAsBinary<a class="headerlink" href="#pc-boundingdiagonalasbinary" title="Link to this heading"></a></h2>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">PC_BoundingDiagonalAsBinary(p pcpatch) returns bytea<span class="colon">:</span></dt>
|
||||
<dd class="field-odd"><p></p></dd>
|
||||
</dl>
|
||||
<p>Return the OGC “well-known binary” format for the bounding diagonal of the
|
||||
patch.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">PC_BoundingDiagonalAsBinary</span><span class="p">(</span> <span class="n">PC_Patch</span><span class="p">(</span><span class="n">ARRAY</span><span class="p">[</span> <span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">,</span><span class="mf">10.</span><span class="p">]),</span> <span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="mf">1.</span><span class="p">,</span><span class="mf">1.</span><span class="p">,</span><span class="mf">1.</span><span class="p">,</span><span class="mf">10.</span><span class="p">]),</span> <span class="n">PC_MakePoint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">ARRAY</span><span class="p">[</span><span class="mf">10.</span><span class="p">,</span><span class="mf">10.</span><span class="p">,</span><span class="mf">10.</span><span class="p">,</span><span class="mf">10.</span><span class="p">])]));</span>
|
||||
|
||||
\<span class="n">x01020000a0e610000002000000000000000000000000000000000000000000000000000000000000000000244000000000000024400000000000002440</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
@ -158,10 +158,12 @@ problems and allows a good integration with other geo-spatial data
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="functions/index.html">Functions</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="functions/schema.html">Schema</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="functions/points.html">PcPoint</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="functions/patchs.html">PcPatch</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="functions/wkb.html">WKB</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="functions/postgis.html">PostGIS</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="functions/utils.html">Utils</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
BIN
objects.inv
BIN
objects.inv
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -22,7 +22,7 @@
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="next" title="Tutorials" href="tutorials/index.html" />
|
||||
<link rel="prev" title="PostGIS" href="functions/postgis.html" />
|
||||
<link rel="prev" title="Utils" href="functions/utils.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
@ -138,7 +138,7 @@ the <a class="reference external" href="/https://pgpointcloud.github.io/pointclo
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="functions/postgis.html" class="btn btn-neutral float-left" title="PostGIS" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="functions/utils.html" class="btn btn-neutral float-left" title="Utils" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="tutorials/index.html" class="btn btn-neutral float-right" title="Tutorials" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user