PostgreSQL - Extraer el punto mas cercado en funcion de un campo en postgresql

 
Vista:
sin imagen de perfil
Val: 17
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Antonio (6 intervenciones) el 16/02/2020 18:00:26
Buenos días como podría hacer la siguiente consulta en postgresql:
tablas de
estaciones (punto) campo tp_min, id_estac
punto de interés (punto)
buffer (polígono)

Necesito extraer la estación meteorologica mas cercana al punto de interés, en función del campo (tp_min) con el mínimo valor de temperatura dentro de un buffer de 10km. Donde devolvera el campo id_estac de la tabla estacines
Alguien me podría echar una mano. saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 219
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Francisco (69 intervenciones) el 16/02/2020 19:21:28
Hola

Estas usando PostGIS o los Tipos Geometricos Nativos de Postgres?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Antonio (6 intervenciones) el 16/02/2020 19:47:34
Hola Francisco y gracias por responder, estoy usando postgresql la version 2.15
con las tablas indicadas y sus campos
estaciones (punto) campo tp_min, id_estac
punto de interés (punto) campo punto, geom
buffer (polígono) tipo geog campos id, name, geog aqui se tendria que hacer una conversion a geometry creo

En si creo que lo que debo de hacer es algo asi como esto (link), pero no se como adaptarlo a mis tablas claro hay que considerar la conversion geog a geom

https://www.i-ciencias.com/pregunta/46690/como-hacer-un-join-espacial-en-postgis-que-devuelve-el-valor-minimo-del-punto-de-interseccion-de-poligono

Tambien: 1 primero sacar los puntos (estaciones dentro del buffer) y
2 extraer el punto (estacion) mas cercana al punto de interes en funcion del campo (tp_min_ext)

Porfa te agradezco tu ayuda, me puedes escribir al correo si lo prefieres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 219
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Francisco (69 intervenciones) el 16/02/2020 19:54:20
Hola

Imagino que es la version PostGIS 2.15 correcto?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Antonio (6 intervenciones) el 16/02/2020 19:56:25
si esa es la version que estoy empleando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 219
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Francisco (69 intervenciones) el 16/02/2020 20:02:12
Pues necesito un respaldo de tu BD con datos porque de vista y memoria muy dificil que salga

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Antonio (6 intervenciones) el 16/02/2020 20:53:36
Francisco el respaldo peso 158mb, como te lo puedo enviar, son tablas y capas sencillas
Estoy tratando de adjuntarlo aquí sino porfa envíame tu correo para compartirtelo por drive

El nombre correcto de la base de datos = geo_data_cartop
y las tablas de trabajo son:

c4_estaciones_smn4 = (tipo punto) campo tp_min_ext, id_estac
c11_pto_pred4 (punto de interés de tipo punto) campos punto, geom
c9_buffer_m (polígono de tipo geog) campos id, name, geog y aquí se tendría que hacer una conversion a geometry creo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 219
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Francisco (69 intervenciones) el 17/02/2020 16:08:11
Usa RAR para empaquetar y lo subes a MEGA o google drive
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Antonio (6 intervenciones) el 21/02/2020 18:14:50
Hola Francisco buenos días

Francisco ya logre resolver ese problema, mira pero tengo otra consulta, ya que tu eres el experto y me puedes ayudar a resolver esto.

Mi consulta es que necesito meter una consulta de postgres en una función (If else o elif, son 5 puntos o consultas y en el punto 3 y 4, es donde tengo el mayor problema, es decir, creo un buffer de 25km, luego dentro de ese buffer buscar la estacion(punto) con el minimo valor de 0° a -20°C mas cercano a mi punto origen(de un predio), y sino lo encuentra que salte a buscar ese mismo rango de temperatura minima al segundo buffer de 50km y asi hasta el buffer de 100km y listo, bueno al final te traera los campos de interes y el codigo de la estacion.
Bueno esto yo creo que se puede hacer mediante clausulas de decision if - else.
Te compartire un link de la base de datos de postgres para las pruebas y en dicha carpeta esta el Query tambien.
Ahora bien Francias yo te contribuiria por tu colaboracion nose unos 50dolares o algo asi, ya he realizado envios a venezuela por medio de un amigo aqui en mexico que se dedica a eso. si me escribes a mi correo te lo agradezco (sanhove arroba yahuu pto com).
Francisco de comparto el link del archivo o carpeta de mi base de datos que se encuentra en postgres (C:\Program Files\PostgreSQL\12\data\base\16395)
link = https://drive.google.com/file/d/1RExuxpVN8SVNMVi8hSgdQsuC3zE9Iptf/view?usp=sharing

Te explico:
Capas implicadas:
SELECT * from b2_shp_zonas_ped_tmp_velv
SELECT * from c5_estaciones_smn5

- Punto 1, genero una interseccion me devuelve los campos de:
SELECT * from c6_pred_inters24

- Punto 2, genero la tabla con el punto de interes:
SELECT * FROM c14_pto_pred4

- Punto 3, dividido en (3a, 3b, 3c, 3d) genero los buffer de 25, 50, 75 y 100km:
SELECT * FROM c12_buffer25km
aqui es donde se pueden anidar los diferentes buffer, ya que los tengo separados

- Punto 4, genera la tabla con la estacion mas cercana con el minimo valor de temperatura, en funcion del buffer_25km y del campo que tiene los valores (tp_min_rgt), para hacer pruebas de los bufferes tendrias que editar este campo en ARCGIS o QGIS, y cambiar los valores, para asi probar la funcion de que busque en un buffer y si no encuentra valores de (0 a -20), que busque en el siguiente buffer.
SELECT * FROM val_min_buf25 = asi para cada buffers

- Punto 5, como en la consulta anterior me extrae el campo de la estacion mas cercana (id_estac), calculo la distancia que hay de mi punto de interes (SELECT * FROM c14_pto_pred4 o val_min_buf25) hasta dicha estacion (para ello extraigo su coordenadas). Este punto tiene dos formas de calcular la distancia.

- RESULTADO FINAL (AL LLAMARA A LA FUNCION DEVERA DAR COMO RESULTADO LOS CAMPOS DE LAS TABLAS SIGUIENTES)

a) SELECT * from c6_pred_inters24 = todos los campos de la interseccion
mas +

b) SELECT * FROM val_min_buf25 = todos los campos de la estaccion mas cercana
mas +

c) Solo añadir la distancia generada en el Punto 5, en el cual ahi no cree ninguna tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 219
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Francisco (69 intervenciones) el 21/02/2020 18:50:17
Hola

Cuando te dije un respaldo es usando el comando pgdump asi

1
pg_dump --file mi_bd.sql --host localhost --port 5432 --username mi_user --verbose --format=p --create --clean --section=pre-data --section=data --section=post-data mi_bd

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Extraer el punto mas cercado en funcion de un campo en postgresql

Publicado por Antonio (6 intervenciones) el 21/02/2020 19:44:37
ah Disculpas igual no te entendía, ya que no tengo mucho experiencia en bases de datos, me estoy iniciando.
De todas formas ya te compartí los archivo, se agradece en lo que me puedas ayudar.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar