pointCloudSchemaSRID: Devuelve el sistema de referencia espacial en el que se expresa todo valor de un esquema
pointCloudSchemaCompression: Devuelve cómo se almacena un parche de un esquema
pointCloudSchemaNDims: Devuelve cuántas dimensiones de un esquema contienen valores
pcpoint: Construye un pcpoint 2D o 3D directamente a partir de coordenadas x/y(/z)
pcpoint: Construye un pcpoint a partir de las coordenadas de cada dimensión de la disposición del esquema, incluidas las dimensiones inactivas, que es como se dan sus valores a un esquema con más dimensiones de las que alcanzan las sobrecargas anteriores. Ese número es el que toma PC_MakePoint y NO es el número de dimensiones activas que informa pointCloudSchemaNDims
pcpatch: Construye un pcpatch a partir de las coordenadas de sus puntos, un punto tras otro, dando para cada punto cada dimensión de la disposición del esquema, incluidas las dimensiones inactivas. Ese número es el que toma PC_MakePatch y NO es el número de dimensiones activas que informa pointCloudSchemaNDims; un número que sea múltiplo del que no corresponde construye un parche de puntos erróneos en lugar de informar un error. Un parche construido así declara él mismo el esquema, al no haber ningún punto del que leerlo
pcpatch: Construye un pcpatch a partir de una lista variádica de pcpoints que comparten el mismo pcid
pcid: Devuelve el identificador de esquema de un pcpoint o pcpatch
getX, getY, getZ: Devuelve una coordenada de un pcpoint, NULL si la dimensión está ausente del esquema
getDim: Devuelve cualquier dimensión con nombre de un pcpoint, NULL si el nombre es desconocido para el esquema
SRID: Devuelve el identificador de referencia espacial (heredado del esquema)
geometry: Devuelve el multipunto de las posiciones que ocupan los puntos de un parche. El esquema que nombra el pcid decide el SRID y si el resultado lleva una dimensión Z
set: Construye un conjunto a partir de un array de valores, todos los cuales deben compartir el mismo pcid
tpcbox, tpcbox_z, tpcbox_t, tpcbox_xt, tpcbox_zt: Construir un tpcbox a partir de límites X/Y/Z/T explícitos y un pcid
hasX, hasZ, hasT: Devuelve si un tpcbox tiene establecidas las dimensiones X/Y, Z o T
xmin, xmax, ymin, ymax, zmin, zmax: Devuelve un límite de coordenada, NULL si la dimensión correspondiente está ausente
tmin, tmax: Devuelve un límite temporal, NULL si la caja no tiene dimensión T
pcid, SRID: Devuelve el identificador de esquema y el SRID
tpcbox_union: Devuelve la unión de dos tpcboxes; ambas deben compartir el mismo pcid
tpcbox_intersection: Devuelve la intersección de dos tpcboxes, NULL si son disjuntas o el pcid no coincide
@>: Devuelve true si el primer tpcbox contiene al segundo
<@: Devuelve true si el primer tpcbox está contenido en el segundo
&&: Devuelve true si dos tpcboxes se solapan
~=: Devuelve true si dos tpcboxes son iguales en las dimensiones que comparten
-|-: Devuelve true si dos tpcboxes son adyacentes (comparten un límite)
<<, &<, >>, &>: Comprueba el orden en el eje X de dos tpcboxes
<<|, &<|, |>>, |&>: Comprueba el orden en el eje Y de dos tpcboxes
<</, &</, />>, /&>: Comprueba el orden en el eje Z de dos tpcboxes (devuelve false si alguna carece de Z)
<<#, &<#, #>>, #&>: Comprueba el orden en el eje temporal de dos tpcboxes (devuelve false si alguna carece de T)
=, <>, <, <=, >=, >: Compara dos tpcboxes; orden total sobre la codificación canónica (pcid, srid, flags, período y a continuación límites espaciales en orden XYZ-min/max)
tpcpoint: Construir un pcpoint temporal de subtipo instante
tpcpointSeq: Construir un pcpoint temporal de subtipo secuencia a partir de un array de instantes. La interpolación es una de 'discrete', 'step'; 'step' es el valor predeterminado para tpcpoint, ya que los pcpoints llevan dimensiones heterogéneas que no se interpolan de manera lineal
tpcpointSeqSet: Construir un pcpoint temporal de subtipo conjunto de secuencias a partir de un array de secuencias
getX, getY, getZ: Proyectar un tpcpoint sobre una dimensión espacial, produciendo un tfloat
getDim: Proyectar un tpcpoint sobre cualquier dimensión de esquema con nombre, produciendo un tfloat
::: Convertir un tpcpoint a un punto de geometría temporal, proyectando todas las dimensiones no espaciales mientras se preservan las marcas temporales. El resultado tiene el mismo SRID que el esquema; su dimensionalidad (2D frente a 3D) sigue la presencia de Z en el esquema. No se proporciona una conversión inversa: reconstruir un pcpoint requiere un esquema destino que el valor temporal solo no puede suministrar
tpcpointInst, tpcpointSeq, tpcpointSeqSet: Transformar un tpcpoint en otro subtipo
setInterp: Transformar un tpcpoint a otra interpolación
=, <>, <, <=, >=, >: Comparar dos tpcpoints lexicográficamente sobre sus codificaciones canónicas
eEq, aEq, eNe, aNe, ?=, %=: Comprobar si el valor en algún instante (alguna vez) o en todos los instantes (siempre) es igual a, o distinto de, un pcpoint u otro tpcpoint
tEq, tNe, #=: Devolver la igualdad o desigualdad temporal de un tpcpoint con un pcpoint o con otro tpcpoint, como un tbool
atValue, minusValue, atValues, minusValues: Restringir un tpcpoint a (al complemento de) un valor pcpoint o un conjunto de valores pcpoint
atTime, minusTime: Restringir un tpcpoint a un selector temporal (marca de tiempo, periodo, conjunto o spanset), o eliminarlo
atTpcbox, minusTpcbox: Restringir un tpcpoint al extent espacial / temporal de un tpcbox, o eliminarlo. Devuelve NULL cuando el pcid del tpcbox no coincide con el del tpcpoint. Internamente proyecta a un tgeompoint a través de la caché de esquemas, restringe la proyección mediante el stbox equivalente y devuelve el span temporal del resultado al tpcpoint original para preservar los valores pcpoint completos
beforeTimestamp, afterTimestamp: Restringir un tpcpoint a los instantes anteriores o posteriores a una marca de tiempo. El indicador strict excluye el instante en la marca de tiempo misma
insert, update: Insertar un tpcpoint en otro, o actualizar otro con él
deleteTime: Eliminar un selector de tiempo (marca de tiempo, conjunto, período o conjunto de spans) de un tpcpoint
appendInstant, appendSequence: Añadir un instante o una secuencia a un tpcpoint
unnest: Devolver los valores distintos de un tpcpoint con el conjunto de spans durante el cual toma cada uno de ellos
timeSplit: Fragmentar un tpcpoint en fragmentos, uno por cada intervalo de tiempo
spans: Devuelve el arreglo de lapsos de tiempo de los segmentos de un tpcpoint
splitNSpans, splitEachNSpans: Devuelve los lapsos de tiempo de un tpcpoint dividido en un número dado de contenedores, o con un número dado de segmentos por contenedor
&&, @>, <@, ~=, -|-: Predicados topológicos: && solapa, @> contiene, <@ contenido en, ~= mismo, -|- adyacente.
<<, >>, <<|, |>>, <</, />>, <<#, #>>: Predicados direccionales estrictos sobre el eje X (<<, >>), eje Y (<<|, |>>), eje Z (<</, />>) y eje temporal (<<#, #>>), más sus variantes "solapa o X": &<, &>, &<|, |&>, &</, /&>, &<#, #&>.
|=|, nearestApproachDistance: Distancia de aproximación más cercana, ordenable KNN mediante la clase de operadores GiST: SELECT … ORDER BY temp |=| query LIMIT N se acelera con índice. El desajuste de pcid produce infinito.
eContains, aContains, eCovers, aCovers, eTouches, aTouches: Contiene, cubre y toca alguna vez / siempre
eIntersects, aIntersects: Alguna vez / siempre intersecta.
eDisjoint, aDisjoint: Alguna vez / siempre disjunto.
eDwithin, aDwithin: Alguna vez / siempre dentro de la distancia.
tContains, tCovers, tDisjoint, tDwithin, tIntersects, tTouches: Relaciones espaciales temporales
tpcpatch: Construir un pcpatch temporal de subtipo instante
tpcpatchSeq: Construir un pcpatch temporal de subtipo secuencia
tpcpatchSeqSet: Construir un pcpatch temporal de subtipo conjunto de secuencias
startNumPoints, endNumPoints: Devolver el número de puntos del parche contenido en el primer o último instante
numPoints: Devolver el número total de puntos de todos los parches de todos los instantes. Se lee directamente de la cabecera de cada parche, sin descompresión.
points: Función devuelve-conjunto: emite una fila por cada (marca de tiempo de instante, punto) recorriendo el parche de cada instante y descomponiéndolo mediante la API C en memoria de pgPointCloud. Útil para combinar una columna tpcpatch con predicados por punto que los operadores de nivel de caja delimitadora no pueden expresar. El coste es O(total de puntos), una descompresión por instante más una emisión de fila por punto.
tpcpatchInst, tpcpatchSeq, tpcpatchSeqSet: Transformar un tpcpatch en otro subtipo
setInterp: Transformar un tpcpatch a otra interpolación
atValue, minusValue, atValues, minusValues: Restringir un tpcpatch a (al complemento de) un valor pcpatch o un conjunto de valores pcpatch
atTpcbox, minusTpcbox: Restringir un tpcpatch a los instantes cuyo parche supera una prueba de superposición aproximada de PCBOUNDS frente al tpcbox, o eliminarlos. La granularidad es a nivel de parche: cada instante superviviente conserva su payload pcpatch textualmente, sin descompresión por punto. Como el PCBOUNDS de pgPointCloud es 2D, la dimensión Z de la caja se ignora a esta granularidad. Devuelve NULL cuando el pcid del tpcbox no coincide.
atTpcboxFine, minusTpcboxFine: Variante por punto de la anterior: cada instante superviviente contiene un pcpatch recién construido que incluye solo los puntos dentro (o fuera, en el caso de minus) del tpcbox en 2D, y en 3D cuando la caja tiene dimensión Z. Los instantes cuyo parche filtra hasta cero puntos se descartan. Más lenta que la variante aproximada porque cada parche se descomprime y reconstruye; úsela cuando se necesite fidelidad a nivel de punto.
atGeometry, minusGeometry: Restringir un tpcpatch a los puntos cuya proyección XY intersecta (o no intersecta, en el caso de minus) una geometría 2D. Z se ignora. El llamador debe garantizar la compatibilidad de SRID entre el esquema del parche y la geometría.
beforeTimestamp, afterTimestamp: Restringir un tpcpatch a los instantes anteriores o posteriores a una marca de tiempo. El indicador strict excluye el instante en la marca de tiempo misma
insert, update: Insertar un tpcpatch en otro, o actualizar otro con él
deleteTime: Eliminar un selector de tiempo (marca de tiempo, conjunto, período o conjunto de spans) de un tpcpatch
appendInstant, appendSequence: Añadir un instante o una secuencia a un tpcpatch
unnest: Devolver los valores distintos de un tpcpatch con el conjunto de spans durante el cual toma cada uno de ellos
timeSplit: Fragmentar un tpcpatch en fragmentos, uno por cada intervalo de tiempo
spans: Devuelve el arreglo de lapsos de tiempo de los segmentos de un tpcpatch
splitNSpans, splitEachNSpans: Devuelve los lapsos de tiempo de un tpcpatch dividido en un número dado de contenedores, o con un número dado de segmentos por contenedor
eIntersects, aIntersects, eContains, aContains, eCovers, aCovers, eDisjoint, aDisjoint, eTouches, aTouches, eDwithin, aDwithin: Devolver verdadero si y solo si al menos un punto de alguno de los instantes del tpcpatch intersecta la geometría (solo XY).
tgeometry: Convierte un parche temporal en la geometría temporal de los multipuntos que ocupan sus parches. El parche de cada instante se convierte en el multipunto de las posiciones que ocupan sus puntos, leídas a través del esquema que nombra su pcid
tContains, tCovers, tDisjoint, tDwithin, tIntersects, tTouches: Relaciones espaciales temporales
&&, @>, <@, ~=, -|-: Predicados topológicos: &&, @>, <@, ~=, -|-. Véase “Operadores Topológicos”.
<<, >>, <<|, |>>, <</, />>, <<#, #>>: Predicados direccionales estrictos sobre los ejes X / Y / Z / tiempo (<<, >>, <<|, |>>, <</, />>, <<#, #>>) y sus variantes «solapa-o-X» (&<, &>, &<|, |&>, &</, /&>, &<#, #&>). Véase “Operadores de Posición”.
|=|, nearestApproachDistance: La distancia de aproximación más cercana (|=|) es ordenable KNN a través de la clase de operador GiST.
eEq, aEq, eNe, aNe, ?=, %=: Comprobar si el valor en algún instante (alguna vez) o en todos los instantes (siempre) es igual a, o distinto de, un pcpatch u otro tpcpatch
tEq, tNe, #=: Devolver la igualdad o desigualdad temporal de un tpcpatch con un pcpatch o con otro tpcpatch, como un tbool
extent: Agregado de caja delimitadora sobre una columna de valores tpcpoint, tpcpatch o tpcbox. Devuelve el tpcbox más pequeño que contiene todas las entradas. Agregar a través de pcid distintos genera un error, la caja delimitadora sería ininterpretable ya que las dimensiones son relativas al pcid.
tCount, wCount: Conteo temporal y conteo por ventana de filas superpuestas en cada marca de tiempo. El resultado es un tint. Todas las filas de entrada deben compartir el mismo subtipo temporal (instante / secuencia / conjunto de secuencias).
tnpoints: Conteo de puntos de pcpatch por instante, sumado a través de las filas. Distinto de tCount(tpcpatch), que cuenta el número de parches (siempre 1 por instante). tnpoints se lee como «cuántos puntos había en la nube en el tiempo t», la primitiva natural para el control de calidad de la ingesta y los paneles de densidad a lo largo del tiempo.
tdensity: Densidad de puntos por instante (numPoints / área-bbox-xy) sumada a través de las filas. Cada pcpatch lleva el PCBOUNDS en línea (xmin / xmax / ymin / ymax) por lo que el término de área de la caja delimitadora se lee directamente, sin recálculo. Un parche de 1 punto o colineal produce +Infinity para ese instante; filtre con isfinite() en consultas posteriores si es necesario.
merge, mergeAgg: Combina múltiples valores temporales en uno solo con todos los instantes de entrada fusionados en orden temporal. Todas las entradas deben compartir el mismo pcid y subtipo.
appendInstant, appendSequence, appendInstantAgg, appendSequenceAgg: Agregados de construcción en flujo: appendInstant ensambla instantes en una secuencia; appendSequence ensambla secuencias en un conjunto de secuencias. Útil para cargadores de trayectorias que consumen filas en orden temporal.
asMFJSON: Para tpcpoint, el tipo temporal se emite como {"type":"MovingPCPoint", … "coordinates":[[X,Y,Z], …], "datetimes":[…]}. X/Y/[Z] se extraen del pcpoint de cada instante mediante la caché de esquemas; si el esquema carece de X/Y el array de coordenadas está vacío para ese instante.
asMFJSON: Para tpcpatch, la etiqueta de tipo es "MovingPCPatch" y cada instante emite un pequeño objeto {"pcid":N, "npoints":N, "bounds":[xmin,xmax,ymin,ymax]}. La carga de puntos comprimida no está intencionadamente en el JSON, use asBinary / asHexWKB para el ida y vuelta.
asBinary, tpcpointFromBinary, tpcpatchFromBinary: Binary I/O with embedded schema for portability
readers.tpcpatch: PDAL reader that reads tpcpatch values from a SQL query
writers.tpcpatch: PDAL writer that writes tpcpatch values to a PostgreSQL table
pcpatch_to_pcd, pcpatch_from_pcd, pcpatch_voxel_grid, pcpatch_sor, pcpatch_icp, pcpatch_normals: PCL-backed SQL functions for point cloud processing