2 votos

¿Cómo crear puntos PostGIS adecuados a partir de un archivo GRIB2?

Estoy intentando cargar los datos meteorológicos del NCEP NOAA en formato GRIB2 en PostGIS y luego visualizarlos con QGIS, etc.

Estoy utilizando la biblioteca wgrib2 para convertir los datos GRIB2 a csv primero.

wgrib2 -match "(:TMP:surface:anl:|:TMP:2 m above ground:anl:)" gfs.t00z.sfluxgrbf00.grib2 -csv fcast.csv

Luego copio el CSV a PostGIS y creo una columna de geometría:

COPY tmp (begindate, enddate, name, name2, value, lat, lon) 
FROM
'/Users/nl/Work/ncep/fcast.csv'
WITH DELIMITER ',' CSV;
SELECT addGeometryColumn ('public', 'tmp', 'the_geom', 4326, 'POINT', 2);
UPDATE tmp SET lon = lon-360 WHERE lon > 180;
UPDATE tmp SET the_geom=ST_SetSRID(ST_MakePoint(lat,lon), 4326);

Al mirar los datos en QGIS, veo un resultado extraño:

enter image description here

Cuando espero ver la rejilla regular - algo como esto:

enter image description here

Veo que alguien ya lo ha hecho aquí: ¿Cómo se procesan los datos GRIB2 para su visualización?

¿Puede alguien dar algunos detalles?

2voto

Nick Puntos 3115

Veo que está especificando ST_MakePoint(Lat, Lon). ¿No debería ser ST_MakePoint(Lon, Lat) ya que el formato habitual es ST_MakePoint(x,y)?

1voto

Gonzalo Puntos 500

Parece que su importación no es correcta:

COPY tmp (begindate, enddate, name, name2, value, lat, lon)

Como puede ver aquí la salida del csv es

"hora0", "hora1", "campo", "nivel",longitud,latitud,valor de la cuadrícula

El valor está al final del archivo csv, por lo que debe cambiar su declaración de importación.

Mi versión modificada y probada sería:

create table tmp (id SERIAL PRIMARY KEY, t0 varchar, t1 varchar, f varchar, lev varchar, lon double precision, lat double precision, val double precision);
COPY tmp (t0, t1, f, lev, lon, lat, val) 
FROM
'/path/to/csvfile.csv'
WITH DELIMITER ',' CSV;
SELECT addGeometryColumn ('public', 'tmp', 'the_geom', 4326, 'POINT', 2);
UPDATE tmp SET the_geom=ST_SetSRID(ST_MakePoint(lon,lat), 4326);

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