sistema:estaciones_meteo

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
sistema:estaciones_meteo [2016/09/29 13:30]
jan [Cambios a realizar a partir del imagen de rasbian existente y en el servidor GeOrellana]
sistema:estaciones_meteo [2019/02/04 15:06] (actual)
Francisco Aguilar [Documentación técnica]
Línea 51: Línea 51:
 El GADPO tiene dos estaciones de este tipo. El GADPO tiene dos estaciones de este tipo.
  
-Resetear el data logger borrando toda la información con weewx usando el comando ''wee_device --set-interval=600'' y luego ''wee_device --set-interval=60''+Resetear el data logger borrando toda la información con weewx, ubicandose en el directorio /home/weewx/bin usando el comando ''./wee_device --set-interval=600'' y luego ''./wee_device --set-interval=60''
  
 A parte de resetear el data logger sería necesario borrar la base de datos sqlite de weewx y reiniciar weewx. A parte de resetear el data logger sería necesario borrar la base de datos sqlite de weewx y reiniciar weewx.
Línea 80: Línea 80:
  
 ==== Cambios a realizar a partir del imagen de rasbian existente y en el servidor GeOrellana==== ==== Cambios a realizar a partir del imagen de rasbian existente y en el servidor GeOrellana====
 +
 +<code bash>
 +# crear el clon con debian
 +sudo dd bs=4M if=/dev/mmcblk0 of=calmituyacu.img
 +# pasar el clone a una tarjeta SD
 +sudo dd bs=4M if=calmituyacu.img of=/dev/mmcblk0
 +</code>
  
   * Actualizar sistema ''sudo apt-get update'', ''sudo apt-get upgrade''    * Actualizar sistema ''sudo apt-get update'', ''sudo apt-get upgrade'' 
Línea 95: Línea 102:
     * nombre de la tabla de destino (medidas_calmituyacu)     * nombre de la tabla de destino (medidas_calmituyacu)
   * PostGIS: Crear tabla de medidas de la estación, por ejemplo usando psql con usuario postgres. Owner es weather, gadpo tiene permisos lectura<code sql>   * PostGIS: Crear tabla de medidas de la estación, por ejemplo usando psql con usuario postgres. Owner es weather, gadpo tiene permisos lectura<code sql>
-CREATE TABLE meteo.medidas_calmituyacu; 
 ALTER TABLE meteo.medidads_calmituyacu OWNER weather; ALTER TABLE meteo.medidads_calmituyacu OWNER weather;
 GRANT SELECT ON meteo.medidas_calmituyacu TO gadpo; GRANT SELECT ON meteo.medidas_calmituyacu TO gadpo;
 </code> </code>
 +
   * Resetear datos   * Resetear datos
-    * parar servicio weewx ''/etc/init.d/weewx stop'+    * parar servicio weewx ''/etc/init.d/weewx stop''
     * Borrar base de datos /home/weewx/archive/weewx.sdb     * Borrar base de datos /home/weewx/archive/weewx.sdb
     * Resetear datos en consola (vea abajo)     * Resetear datos en consola (vea abajo)
  
-  * iniciar cronjob del stetl / sospilot (descomentarlo)+  * iniciar cronjob del stetl / sospilot (descomentarlo) DESPUES DE HABER CALIBRADA LA ESTACIÓN Y AVERIGUADO SI LA TABLA DE MEDIDAS EN POSTGIS ESTÁ VACÍA Y SIN MEDIDAS ERRONEAS.
  
  
Línea 210: Línea 217:
 git clone https://github.com/Geonovum/sospilot.git git clone https://github.com/Geonovum/sospilot.git
 cd sospilot cd sospilot
 +</code>
 +Optimizar el uso de la swap
 +Para ello editar el archivo sysctl.conf y añadir al final del archivo lo siguiente vm.swappiness=10
 +<code bash>
 +sudo gedit /etc/sysctl.conf
 +vm.swappiness=10
 </code> </code>
 ===== Integración en GeOrellana y el uso de estandares abiertos ===== ===== Integración en GeOrellana y el uso de estandares abiertos =====
Línea 236: Línea 249:
 === La tabla de las estaciones meteorológicas === === La tabla de las estaciones meteorológicas ===
  
-<WRAP center round important 60%> +La tabla de las estaciones meteorológicas con unos atributos mínimas (si necesario se ampliará en un futuro).
-Estandarizar esta tabla+
-</WRAP> +
 <code sql> <code sql>
--- +CREATE TABLE meteo.estacion_meteo 
--- Name: stations; Type: TABLE; Schema: meteo; Owner: gadpo; Tablespace: +
--- +  gid serial NOT NULL, 
-CREATE TABLE meteo.stations +  geom geometry(MultiPoint,32718), 
-    gid integer NOT NULL UNIQUE PRIMARY KEY+  fcode character varying(5) DEFAULT 'JC000'::character varying, 
-    point geometry (Point,4326), +  nam character varying(80)
-    wmo character varying, +  rem character varying(5)
-    station_code integer+  eme character varying(50)
-    name character varying, +  msl numeric
-    obs_pres integer+  fis date
-    obs_wind integer+  efu character varying(10)
-    obs_temp integer+  txt date
-    obs_hum integer+  web character varying(20)
-    obs_prec integer+  CONSTRAINT estacion_meteo_pkey PRIMARY KEY (gid) 
-    obs_rad integer+) 
-    obs_vis integer, +WITH ( 
-    obs_clouds integer, +  OIDS=FALSE
-    obs_presmeteo integer, +
-    obs_snowdepth integer, +
-    obs_soiltemp integer, +
-    lon double precision, +
-    lat double precision, +
-    height double precision+
 ); );
 +ALTER TABLE meteo.estacion_meteo
 +  OWNER TO gadpo;
 +GRANT ALL ON TABLE meteo.estacion_meteo TO gadpo;
 +GRANT SELECT ON TABLE meteo.estacion_meteo TO weather;
 +
 +-- Index: meteo.sidx_estacion_meteo_geom
 +
 +-- DROP INDEX meteo.sidx_estacion_meteo_geom;
 +
 +CREATE INDEX sidx_estacion_meteo_geom
 +  ON meteo.estacion_meteo
 +  USING gist
 +  (geom);
 +
  
-CREATE INDEX stations_point_idx ON meteo.stations USING gist (point); 
 </code> </code>
  
Línea 330: Línea 347:
   outtempbatterystatus real,   outtempbatterystatus real,
   intempbatterystatus real,   intempbatterystatus real,
-  CONSTRAINT measurements_pkey PRIMARY KEY (datetime)+  CONSTRAINT medidas_calmituyacu_pkey PRIMARY KEY (datetime)
 ) )
 WITH ( WITH (
Línea 340: Línea 357:
 </code> </code>
  
-<WRAP center round todo 60%> +Y la vista de las medidas de una estación estandarizada según el catálogo de objetos geográficos del ecuador:
-PENDIENTE crear vista estandarizada de la tabla de las estaciones al catálogo nacional de objetos geográficos! +
-</WRAP> +
- +
-=== Las vistas de las observaciones === +
- +
-Las vistas estandarizadas con las observaciones se encuentran en el esquema clima, también la vista con la última observación. +
- +
-<WRAP center round todo 60%> +
-PENDIENTE crear una vista a partir del esquema de la tabla de las medidas al catálogo nacional de objetos geográficos.  +
- +
-Descarga de tablas resumenes de las estaciones. +
-</WRAP>+
 <code sql> <code sql>
--- VIEWS +CREATE VIEW meteo.m_calmituyacu SELECT 
- +    'JA000'::character varying(5) AS fcode
--- SELECT to_timestamp(datetime), "datetime","pressure","outtemp" FROM "meteo"."measurements" +    m.rem
-CREATE VIEW meteo.v_observations AS +    m.rain AS pcp
-  SELECT +    round(((outtemp-32.0)*5.0/9.0)::numeric) as tse, 
-    meas.datetime+    m.outhumidity as hre
-    meas.station_code+    round(windDir::numeric) as dvi
-    stations.name as station_name, +    round((windSpeed*1.61)/3.6::numeric) as fvi
-    to_timestamp(datetime) as time+    (to_timestamp(m.datetime) AT TIME ZONE 'UTC-5')::time AS hor
-    round(((outtemp-32.0)*5.0/9.0)::numeric) as outtemp_c+    (to_timestamp(m.datetimeAT TIME ZONE 'UTC-5')::date AS fec
-    round((windSpeed*1.61)/3.6::numeric) as windspeed_mps+    'Gobierno Descentralizado de la Provincia de Orellana'::character varying(50AS ist,  
-    round((windGust*1.61)/3.6::numeric) as windgust_mps+    'Automática'::character varying(10AS tie
-    round(windDir::numeric) as winddir_deg+    m.barometer*33.8638866667 AS barometro, 
-    round(((windchill-32.0)*5.0/9.0)::numeric) as windchill_c+    s.geom as geom 
-    meas.rainRate, +    FROM meteo.medidas_jekannyty as m 
-    round((pressure*33.8638815)::numericas pressure_mbar+  INNER JOIN meteo.estacion_meteo AS s 
-    round(outhumidity::numericas outhumidity_perc+      ON m.rem s.rem ORDER BY datetime DESC;
-    stations.point as point +
-  FROM meteo.measurements as meas +
-  INNER JOIN meteo.stations AS stations +
-      ON meas.station_code stations.station_code ORDER BY datetime DESC;+
 </code> </code>
- 
-<WRAP center round todo 60%> 
-PENDIENTE crear vista de la tabla de las últimas medidas según el catálogo nacional de objetos geográficos! 
- 
-SERÍA UNIR LAS TABLAS DE LAS ESTACIONES a meteo_meassurements para luego group by y tener la medida más reciente a mano. 
-</WRAP> 
- 
-<code sql> 
--- Laatste Metingen per Station 
-CREATE VIEW weather.v_last_observations AS 
-  SELECT DISTINCT ON (station_code) station_code, 
-    station_name, 
-    datetime, 
-    time, 
-    outtemp_c, 
-    windspeed_mps, 
-    windgust_mps, 
-    winddir_deg, 
-    windchill_c, 
-    rainRate, 
-    pressure_mbar, 
-    outhumidity_perc, 
-    point 
-  FROM meteo.v_observations; 
-</code> 
- 
  
 ==== Configurar stetl ==== ==== Configurar stetl ====
Línea 420: Línea 395:
 . ../options-calmituyacu.sh . ../options-calmituyacu.sh
  
-export options="host=geo.gporellana.gob.ec port=5432 weewx_db=$WEEWX_DB user=$PGUSER password=$PGPASSWORD database=georellana schema=meteo table=medidas_calmituyacu"+export pg_options="host=geo.gporellana.gob.ec port=5432 weewx_db=$WEEWX_DB user=$PGUSER password=$PGPASSWORD database=gadpo schema=meteo table=medidas_calmituyacu"
 </code> </code>
  
Línea 442: Línea 417:
 query = SELECT * from archive WHERE dateTime > %d ORDER BY dateTime LIMIT 1000 query = SELECT * from archive WHERE dateTime > %d ORDER BY dateTime LIMIT 1000
  
-table = medidas_calmituyacu+table = {table}
 </code> </code>