Skip to content
Snippets Groups Projects
Commit b3ebcd05 authored by Peter Alexander's avatar Peter Alexander
Browse files

Cluster scripts updated

parent cef322ed
Branches
Tags
No related merge requests found
......@@ -7,8 +7,10 @@ fi
cd $1
concatLcFile=lc_concat.txt
concatPriceFile=price_concat.txt
concatLUFile=LandUseSummary.csv
echo "Scenario,Year,Cropland,Pasture,ManForest,UnmanForest,Natural,EnergyCrop,FertCrop,IrrigCrop" > $concatLcFile
echo "Scenario,Year,Crop,Imports,Exports,Price,Stocks" > $concatPriceFile
echo "Scenario,cropType,yield,irrig,fert,otherint,area,Year" > $concatLUFile
find . -name "*lc.txt"|while read fname; do
scenarioDir="$(dirname $fname)"
......@@ -29,4 +31,11 @@ find . -name "*lc.txt"|while read fname; do
test $j -eq 1 && ((j=j+1)) && continue
echo "${scenario},$line" >> $concatPriceFile
done < $scenarioDir/prices.txt
k=1
while read -r line
do
test $k -eq 1 && ((k=k+1)) && continue
echo "${scenario},$line" >> $concatLUFile
done < $scenarioDir/LandUseSummary.csv
done
......@@ -4,7 +4,7 @@
#$ -l h_vmem=8G
#$ -R y
if [ $# -ne 1 ]; then
if [ $# -lt 1 ]; then
echo need 1 argument to specify config/output directory
exit 0
fi
......@@ -21,3 +21,13 @@ echo "starting"
java -Xmx1G -XX:+PrintGC -classpath /exports/csce/eddie/geos/groups/LURG/models/gams/gams24.7_linux_x64_64_sfx/apifiles/Java/api/GAMSJavaAPI.jar:/exports/csce/eddie/geos/groups/LURG/models/PLUM/classes -DBUILDVER=$buildver -DCONFIG_FILE=/exports/csce/eddie/geos/groups/LURG/models/PLUM/output/$1/config.properties ac.ed.lurg.ModelMain
echo "finished"
module load R
R < /exports/csce/eddie/geos/groups/LURG/models/PLUM/plumv2/scripts/summariseLandUseOneSim.R --no-save --args $1
if [[ $* == *-NoP* ]]; then
echo "Not pruning outputs"
else
echo "Pruning outputs, to save disk space"
/exports/csce/eddie/geos/groups/LURG/models/PLUM/plumv2/scripts/pruneOutputs.sh /exports/csce/eddie/geos/groups/LURG/models/PLUM/output/$1
fi
require(data.table)
cropIntensitySummary = function (luDt, cropType) {
yDt = luDt[cropland > 0,
list( irrig = get(paste0(cropType, '_IQ')),
fert = get(paste0(cropType, '_FQ')),
otherint = get(paste0(cropType, '_OI')),
thisCropFact = get(paste0(cropType, '_A')),
allCropFact = cropland/area,
area = get(paste0(cropType, '_A'))*cropland,
yield = get(paste0(cropType, '_Y'))) ]
# yDt[thisCropFact>0.05 & allCropFact > 0.03, list(cropType = cropType, yield=sum(area * yield)/sum(area),
yDt[thisCropFact>0, list(cropType = cropType, yield=sum(area * yield)/sum(area),
irrig=sum(area * irrig)/sum(area),
fert=sum(area * fert)/sum(area),
otherint=sum(area * otherint)/sum(area),
area = sum(area)) ]
}
summariseLandUseOutput = function(simDir, writeFile=TRUE) {
years = list.files(simDir, pattern="[0-9]+")
cropSumDt = NULL
for (year in years) {
fileName = file.path(simDir, year, 'LandUse.txt')
if (file.exists(fileName)) {
print (paste("Processing", year, "from", fileName))
luDt = data.table(read.table(fileName, header=TRUE))
for (cropType in c('maize', 'rice', 'wheat', 'energycrops', 'oilcrops', 'pulses', 'starchyRoots')) {
cropSummary = cropIntensitySummary(luDt, cropType)
if (nrow(cropSummary) >0)
cropSumDt = rbind(cropSumDt, cbind(cropSummary, year=year))
}
} else {
print(paste("Can't find file, so skipping:", fileName))
}
}
resDt = rbind(cropSumDt, cropSumDt[cropType != 'energycrops', list(cropType='avgExcEC',
yield=sum(yield*area)/sum(area),
irrig=sum(irrig*area)/sum(area),
fert=sum(fert*area)/sum(area),
otherint=sum(otherint*area)/sum(area),
area=sum(area)), by=year])
resDt = rbind(resDt, cropSumDt[, list(cropType='avgIncEC',
yield=sum(yield*area)/sum(area),
irrig=sum(irrig*area)/sum(area),
fert=sum(fert*area)/sum(area),
otherint=sum(otherint*area)/sum(area),
area=sum(area)), by=year])
if (writeFile) write.table(resDt, file.path(simDir, "LandUseSummary.csv"), sep=",", row.names=FALSE, quote=FALSE)
resDt
}
baseOutputDir="/exports/csce/eddie/geos/groups/LURG/models/PLUM/output" # "~/Downloads"
ensemble = commandArgs(trailingOnly = TRUE)[1]
ensDir=file.path(baseOutputDir, ensemble)
if (dir.exists(ensDir)) {
print(paste(ensDir, "exists. Processing"))
summariseLandUseOutput(simDir = ensDir)
} else {
print(paste(ensDir, "does not exist. Stopping"))
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment