Schema
Owner
albenard
Descriptions
Cette procedure prepare les fichiers pour un usage en parallélisation d'ondine avec météo SAFRAN passé et sol GSM.
Options
Option | Value |
---|---|
Returns |
boolean |
Language |
|
Parameters |
There are no parameters for function ps_preparation_ondine |
Definition
CREATE OR REPLACE FUNCTION public.ps_preparation_ondine (
)
RETURNS boolean LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
PARALLEL UNSAFE
COST 100
AS
$span$
DECLARE
nom_maille_meteo VARCHAR; -- variable pour stocker le nom de la maille en cours de traitement
requete VARCHAR; -- variable permettant de stocker le texte d'une requête
chemin_fichier VARCHAR; --dossier dans lequel créer les fichiers cle;x;y
BEGIN
DROP TABLE IF EXISTS croisement_safran_gsm;
create temporary table croisement_safran_gsm(
maille_sol bigint,
maille_meteo bigint,
x_2154 double precision,
y_2154 double precision,
x_27572 double precision,
y_27572 double precision
);
raise notice 'table cree';
SET client_min_messages = 'warning';
with point_sol as
(SELECT val as maille_sol, st_x(geom)as x_2154, st_y(geom)as y_2154,st_transform(geom,27572)as geom_sol
FROM (SELECT dp.* FROM geo_raster_france_90m_gsm, LATERAL ST_PixelAsCentroids(rast, 1) AS dp) foo)
insert into croisement_safran_gsm(maille_sol,maille_meteo,x_2154,y_2154,x_27572,y_27572)
select maille_sol,
st_value(rast,geom_sol) as maille_meteo ,
x_2154,
y_2154,
st_x(geom_sol)as x_27572,
st_y(geom_sol) as y_27572
from point_sol, geo_raster_france_8km_safran
where st_intersects(rast,geom_sol);
SET client_min_messages = 'notice';
raise notice 'table alimentée';
CREATE INDEX croisement_safran_gsm__maille_meteo_idx ON croisement_safran_gsm USING btree (maille_meteo);
--vacuum analyse croisement_safran_gsm;
for nom_maille_meteo in select distinct maille_meteo from croisement_safran_gsm
loop
if nom_maille_meteo is not NULL THEN
raise notice 'maille : %',nom_maille_meteo;
requete = 'COPY (select maille_sol as cle, x_2154 as x, y_2154 as y from croisement_safran_gsm where maille_meteo = ' || nom_maille_meteo || ') TO ' || quote_literal('/data/pgsql/ondine/' || nom_maille_meteo || '.csv') || ' DELIMITER ' || quote_literal(';');
execute requete;
end if;
end loop;
return TRUE;
EXCEPTION
WHEN OTHERS THEN
raise notice '% % - % ', sqlstate, sqlerrm, requete;
return FALSE;
END;
$span$;
COMMENT ON FUNCTION public.ps_preparation_ondine()
IS 'Cette procedure prepare les fichiers pour un usage en parallélisation d''ondine avec météo SAFRAN passé et sol GSM.';
This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 07/12/2018 13:23 |