DataExport_ALL.R 1.80 KiB
DataExport_ALL <- function(Qobs,OutputsModel,IndPeriod_Export,ExportFile){
      if("DatesR"  %in% names(OutputsModel) == FALSE){ cat(paste("Error in DataExport: OutputsModel$DatesR" ," is needed for the export \n",sep="")); return(NULL); }
      if("Precip"  %in% names(OutputsModel) == FALSE){ cat(paste("Error in DataExport: OutputsModel$Precip" ," is needed for the export \n",sep="")); return(NULL); }
      if("PotEvap" %in% names(OutputsModel) == FALSE){ cat(paste("Error in DataExport: OutputsModel$PotEvap"," is needed for the export \n",sep="")); return(NULL); }
      if("Qsim"    %in% names(OutputsModel) == FALSE){ cat(paste("Error in DataExport: OutputsModel$Qsim"   ," is needed for the export \n",sep="")); return(NULL); }
      if(length(Qobs)!=length(OutputsModel$DatesR)){ cat("Error in DataExport: Qobs and OutputsModel must have the same length \n"); return(NULL); }
      MatData <- cbind(OutputsModel$Precip[IndPeriod_Export],OutputsModel$PotEvap[IndPeriod_Export],Qobs[IndPeriod_Export],OutputsModel$Qsim[IndPeriod_Export]);
      Headers <- c("Precip","PotEvap","Qobs","Qsim"); 
      ListOutputs <- names(OutputsModel);
      for(iList in 1:length(ListOutputs)){
        if(ListOutputs[iList] %in% c("StateEnd","DatesR","Qsim","PotEvap","Precip","CemaNeigeLayers") == FALSE ){
          MatData <- cbind(MatData,OutputsModel[[iList]][IndPeriod_Export]);
          Headers <- c(Headers,ListOutputs[iList]); 
      MatData[is.na(MatData)] <- -999.999;
      TXT <- cbind(format(OutputsModel$DatesR[IndPeriod_Export],format="%Y%m%d"),formatC(MatData,format="f",width=14,digits=6)); 
      Headers <- format(Headers,width=14,justify="right");
      colnames(TXT) <- c("   Dates",Headers);
      write.table(file=ExportFile,TXT,sep=";",quote=FALSE,row.names=FALSE,col.names=TRUE);