wiki:Model Results Basque river basins

Version 8 (modified by celine, 13 years ago) (diff)

--

back to the first page ..

##Crear SQL file de la capa shp ccm_tramos donde se especifica la correlación de cada segmento del ccm con las Unidades Hidrograficas de Euskadi

##Inicio; Simbolo del sistema; cd pegar ruta de la capa

C:\"Archivos de programa"\PostgreSQL\8.4\bin\shp2pgsql -s 3035 -c -g the_geom -W LATIN1 -I ccm_tramos.shp ccm_tramos > ccm_tramos.sql
C:\"Archivos de programa"\PostgreSQL\8.4\bin\psql -d eda2.0 -h localhost -U postgres -p 5432 -f ccm_tramos.sql 

##En pgAdmin; query Editor SQL

#La tabla añadida aparece en la BD EDA2.0, esquemas, public, pasarlo a la carpeta 'ccm21' #

ALTER TABLE ccm_tramos SET SCHEMA ccm21;
ALTER TABLE ccm21.ccm_tramos rename to riversegments_basquebasins;


select count(wso1_id) as number, wso1_id from ccm21.riversegments_basquebasins group by wso1_id order by number;

select * from ccm21.riversegments_basquebasins where wso1_id='427796' 

#Eliminar un dato repetido
delete from ccm21.riversegments_basquebasins where gid='2035';

#Crear primary key
ALTER TABLE ccm21.riversegments_basquebasins drop constraint ccm_tramos_pkey
ALTER TABLE ccm21.riversegments_basquebasins ADD CONSTRAINT  pk_wso1id PRIMARY KEY (wso1_id); 

#Cambiar tramo de Baias a la Unidad Hidrografica Ibaizabal
select * from ccm21.riversegments_basquebasins where wso1_id in('429836')
update ccm21.riversegments_basquebasins set unidad_hid='IBAIZABAL' where wso1_id in('429836'); 

#Crear nueva columna 'emp' = true las cuencas objeto de aplicación del modelo
alter table ccm21.riversegments_basquebasins add column emp boolean;
update ccm21.riversegments_basquebasins set emp='false' where unidad_hid in ('KARRANTZA','AGUERA','BIDASOA','OMECILLO')
update ccm21.riversegments_basquebasins set emp='true' where emp is null; 

#Comprobar que se ha hecho bien
select * from ccm21.riversegments_basquebasins limit 5
select * from ccm21.riversegments_basquebasins where unidad_hid='BAIAS' 
}

##Integrar la capa creada en Eclipse
#En 'EDA/EDACCM/sql/main_CCM_Spain.R' están todas las tablas que queremos integrar 

#Load the table riversegments_basquebasins
source("EDACCM/init.r")
basquebasins=new("BaseEda",
                baseODBC="baseODBCccm",
                schema="ccm21",
                table="riversegments_basquebasins",
                prkey="wso1_id")
basquebasins<-loaddb(basquebasins)
save(basquebasins,file=paste(datawd,"/dataEDAccm/basquebasins.RData",sep=""))

#En 'EDA/EDACCM/prediction_1_dbeel_ok.R' run all until
# line 157 source("prediction_riverwidth_writedatabase_Basque.R")

#En 'EDA/EDACCM/prediction_riverwidh_basque.R' run all 

{{
load(file=str_c(datawd,"/dataEDAccm/basquebasins",".Rdata"))
bb<-basquebasins@data
SEBasin<-array(0,c(length(levels(as.factor(bb$unidad_hid[bb$emp==1]))),5))
colnames(SEBasin)<-c("Basin","Nb_YE","Nb_SE","Water_surface","Nb_YE/100m2")
for(i in 1:length(levels(as.factor(bb$unidad_hid[bb$emp==1])))){
        SEBasin[i,1]<-levels(as.factor(bb$unidad_hid[bb$emp==1]))[i]
        SEBasin[i,2]<-round(sum(ccm$nb_eel_per_segment[ccm$wso1_id%in%bb$wso1_id[bb$unidad_hid==SEBasin[i,1]]],na.rm=T),0)
        SEBasin[i,3]<-round(sum(ccm$nb_eel_per_segment[ccm$wso1_id%in%bb$wso1_id[bb$unidad_hid==SEBasin[i,1]]],na.rm=T)*0.05,0)
        SEBasin[i,4]<-round(sum(ccm$riverareakm[ccm$wso1_id%in%bb$wso1_id[bb$unidad_hid==SEBasin[i,1]]]),3)
        SEBasin[i,5]<-round(100*sum(ccm$nb_eel_per_segment[ccm$wso1_id%in%bb$wso1_id[bb$unidad_hid==SEBasin[i,1]]])/sum(ccm$riverarea[ccm$wso1_id%in%bb$wso1_id[bb$unidad_hid==SEBasin[i,1]]]),3)
}
SEBasin<-as.data.frame(SEBasin)
SEBasin
write.table(SEBasin,file=paste(datawd,"/dataEDAccm/SEBasin.csv",sep=""),sep=";",row.names=F,col.names=T)
}}

##En pgAdmin crear tabla.csv con los resultados por cada cuenca
CREATE TABLE ccm21.results_basquebasins_13jun2012
(
  BASIN character varying (25),
  Nb_YE numeric,
  Nb_SE numeric,
  Water_surfa numeric,
  Nb_YE_100m2 numeric
);

copy ccm21.results_basquebasins_13jun2012 from 'C:/workspace_Aizko/EDAData/dataEDAccm/SEBasin.csv' with csv delimiter as ';' header;