4 votos

Cómo interpolar los datos que faltan de vecinos en PostGIS?

Tengo un conjunto de datos con los datos del punto dentro de un país dado. Digamos que mis datos se ve algo como esto:

tree_id | species | age | geom
------------------------------
   0    |   Ash   | null| ...
   1    |  Beech  |  70 | ...
   2    |   Ash   |  10 | ...
   3    |  Beech  |  70 | ...
   4    |  Beech  | null| ...
   5    |  Beech  |  60 | ...
  ...   |   ...   | ... | ...

Como se puede ver el conjunto de datos tiene algunos datos que faltan. Por ejemplo, tree_id 0 no tiene edad. Por lo tanto me gustaría interpolar los valores perdidos de los 100 metros a la redonda.

Estoy buscando la media de la especie. El resultado también debe incluir el número de la muestra de árboles utilizados. Una tabla de resultado podría ser algo como esto:

tree_id | age_avg | samples
---------------------------
   0    |   11.8  |  113
   3    |   12.2  |   97
   5    |   50.7  |  272
  ...   |   ...   |  ...

Podría usted ayudarme a comenzar con algunos PostgreSQL código de consulta, por favor?

3voto

Sanket Gupta Puntos 21

Ok, así que vamos a empezar de nuevo esta es la respuesta para hacer lo que quieras, pero esto sólo será útil en un no-meanigfull contexto. Por ejemplo, para representar una escena 3D, donde algunos de los datos que faltan y que desea dibujar un "medio local árbol" para cada especie.

Estoy suponiendo que la tabla original se llama "mytrees".

Crear dos alias de a & b de la tabla mytrees ,únete a b a una tabla si en su radio de búsqueda, a continuación, resumir los datos para cada punto de uso de los agregados.

SELECT a.tree_id, a.species, avg(b.age) as age_avg, count(*) as sample, a.geom
FROM mytrees a LEFT JOIN mytrees b
ON ST_DWithin(a.geom,b.geom,100) AND a.species = b.species
GROUP BY a.tree_id, a.species, a.geom
ORDER BY a.tree_id

De nuevo una última advertencia, que funcionará pero NO LO USO con sentido de análisis de datos. Sólo para la representación o como prueba de concepto.

Editado : el uso de ST_DWithin según lo sugerido por John Barça, el camino más fácil

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X