Version 30 (modified by cedric, 13 years ago) (diff) |
---|
back to first page..
calcul des mortalités à la dévalaison
Sauvegarde et restauration des données de modèle dans la base
voir Model Results pour le script de sauvegarde à partir du fichier d'échange (en bas)
creation de méthodes R et d'une page "main" de lancement
- source:trunk/EDARHT/main_rht_result.R fonction de lancement
- source:trunk/EDARHT/BaseEdaRHTmodel.R modification ajout d'une méthode loaddb(mod_id) pour charger depuis la base
- livraison du package stacomirtools et modification du init.R (chez Céline OK)
- modification de la méthode predict pour intégrer les changements de la méthode fn_pred_set, OK les chargements depuis la base et les prédictions donnent le même résultat
- source:trunk/EDARHT/BaseEdaRHTpate.R
- pour cette classe il y aura des affichages graphiques, creation d'un shape pour affichage dans R, j'utilise le chemin donné par shpwd du xml....
E:\workspace\EDAdata\dataEDAccm\shape>pgsql2shp -f "rhtvs2" -h localhost -p 5432 -u postgres -P postgres -g the_geom -r -k eda2.0_RHT "select id_drain, the_geom from rht.rhtvs2"
- bon ben quand on passe par un lien ODBC, il y a des antislashes qui virent. Donc passer par R ne règle pas le problème. Donc il faut que je réussisse en sql. Ci dessous c'est fait.
-- D'abord un essai qui marche select cast(unnest(vecteurchemin) as integer) as id_drain from (SELECT regexp_split_to_array(ltree2text(chemin),E'\\.+') as vecteurchemin from rht.rhtvs2 where chemin ~ '*.20211.*') as sub EXCEPT select cast(unnest(vecteurchemin) as integer) as id_drain from ( select regexp_split_to_array(ltree2text(chemin),E'\\.+') as vecteurchemin from rht.rhtvs2 where id_drain=20211) as sub EXCEPT select 20211; -- Ensuite la fonction qui ne marchait pas le E'\\.+' devient un E''\\\\.+'' DROP TYPE IF EXISTS id_drain; CREATE TYPE id_drain as (id_drain int); -- je sors le create table de la fonction pour gagner du temps... Attention à bien le lancer sinon ça plantera DROP TABLE IF EXISTS rht.upstream_riversegments; CREATE TABLE rht.upstream_riversegments(id_drain integer); DROP FUNCTION IF EXISTS rht.upstream_segments(id_ numeric); CREATE OR REPLACE FUNCTION rht.upstream_segments(id_ numeric) RETURNS setof int AS $$ DECLARE id_drain id_drain%ROWTYPE; BEGIN -- filling a new table with the results from a catchment delete from rht.upstream_riversegments; EXECUTE 'insert into rht.upstream_riversegments (select cast(unnest(vecteurchemin) as integer) as id_drain from (SELECT regexp_split_to_array(ltree2text(chemin),E''\\\\.+'') as vecteurchemin from rht.rhtvs2 where chemin ~ ''*.'||id_||'.*'') as sub EXCEPT select cast(unnest(vecteurchemin) as integer) as id_drain from ( select regexp_split_to_array(ltree2text(chemin),E''\\\\.+'') as vecteurchemin from rht.rhtvs2 where id_drain='||id_||') as sub EXCEPT select '||id_||' order by id_drain)'; for id_drain in select * from rht.upstream_riversegments loop id_drain.id_drain=CAST(id_drain.id_drain AS int8); return next id_drain.id_drain; end loop; return; END; $$ LANGUAGE 'plpgsql' ; COMMENT ON FUNCTION rht.upstream_segments(id_drain_ numeric) IS 'function using btree to calculate upstream riversegments'; -- pour lancer la fonction select rht.upstream_segments(20211); --734ms
- pour cette classe il y aura des affichages graphiques, creation d'un shape pour affichage dans R, j'utilise le chemin donné par shpwd du xml....