view run.r @ 7:366449cab681 draft

"planemo upload for repository https://forgemia.inra.fr/carboseq/record-projet-carboseq/-/tree/b4b11a86a9c43b3dd4a3d27af9f2d99463cdbffa/toos/CarboSeqSimulator commit b4b11a86a9c43b3dd4a3d27af9f2d99463cdbffa-dirty"
author siwaa
date Thu, 29 Aug 2024 14:58:19 +0000
parents a069fc43b0b1
children 5fdc9d0c223b
line wrap: on
line source


# help : Rscript % --url=https://coby.infosol.inrae.fr:7777/semantify --srcDir=~/CSCL/src/csoprapreprocessor/inst/extdata/carboseq/set001/

# Function to parse command-line arguments
parse_args <- function() {
    args <- commandArgs(trailingOnly = TRUE)
    
    # Default values for optional parameters
	url <- "https://coby.infosol.inrae.fr:8080/semantify/"
	srcDir <- NULL
	# srcDirOutput <- NULL
	part <- "modeltoolbox_sem_remote"
	DS <- T
	NBCores <- 1
	semPath <- "."
    # Parse arguments
    for (arg in args) {

        if (grepl("^--url=", arg)) {
            url <- sub("^--url=", "", arg)
        }

 	    if (grepl("^--srcDir=", arg)) {
            srcDir <- sub("^--srcDir=", "", arg)
        }

        # if (grepl("^--srcDirOutput=", arg)) {
        #    srcDirOutput <- sub("^--srcDirOutput=", "", arg)
        # }
	    if (grepl("^--part=", arg)) {
            part <- sub("^--part=", "", arg)
        }

	    if (grepl("^--DS=", arg)) {
            DS <- ifelse(sub("^--DS=", "", arg) == "TRUE", TRUE, FALSE)
        }

	    if (grepl("^--NBCores=", arg)) {
            NBCores <- as.numeric(sub("^--NBCores=", "", arg))
        }
        
	    if (grepl("^--srcOut=", arg)) {
            srcOut <- sub("^--srcOut=", "", arg)
        }

		if (grepl("^--semPath=", arg)) {
            semPath <- sub("^--semPath=", "", arg)
        }
    }
    
    list( url = url, srcDir = srcDir, part = part, DS = DS, 
	      NBCores = NBCores, srcOut = srcOut, semPath = semPath )
}

argus <- parse_args()

url <- argus[["url"]]
srcDir <- argus[["srcDir"]]
# srcDirOutput <- argus[["srcDirOutput"]]
part <- argus[["part"]]
DS <- argus[["DS"]]
NBCores <- argus[["NBCores"]]

srcOut <- argus[["srcOut"]]

semPath <- argus[["semPath"]]

if (!endsWith(srcOut, "/")) {
  srcOut <- paste0(srcOut, "/")
}

#if (is.null(srcDirOutput)) {
#  srcDirOutput <- srcDir
# }

# url="https://147.100.203.110/semantify "
# srcDir="~/tmp/testFiles/400Sites/"
# part="modeltoolbox"
# part="csoprapreprocessor"
# DS=TRUE
# NBCores=10

# MTB{{{
if (part == "modeltoolbox") {
f0 <- function(){
	modeltoolbox::loadCSVs(maxCores = NBCores, cinputCalculator = "cinest", 
	       preprocessorInputs = ppi)
	modeltoolbox::runSims(maxCores = NBCores)
	res <- modeltoolbox::readSocForcingsResults()
	fileName <- "resRun.RData"
	filePath <- file.path(srcOut, fileName)
	save(res, file = filePath)
}
}
#}}}

if (part == "modeltoolbox_sem_local") {
	DS <- F
	print("Setting DS to F. Will semantify outside of the csoprapreprocessor functions")
	f0 <- function(){
		path <- this.path::this.dir()
		print(path)
		csopratools::semantify(
			  inputDir = srcDir,
			  outputDir = srcDir,
			  name = "carboseq",
			  # use = "service",
			  URL = url,
			  use = "java",
			  semantifierRootPath =  semPath,
			  extFileNames = paste0(c("crop", "soil", "units"), ".csv")
		)
		print("between semantify and load")

		ppi$srcDirOutput <- NULL # Hack

		modeltoolbox::loadCSVs(maxCores = NBCores, cinputCalculator = "cinest", 
		       preprocessorInputs = ppi)
		print("between load an sim")       
		modeltoolbox::runSims(maxCores = NBCores)
		# res <- modeltoolbox::getYearlySOCResults()
		res <- modeltoolbox::readSocForcingsResults()
		fileName <- "resRun.RData"
		filePath <- file.path(srcOut, fileName)
		save(res, file = filePath)
	}
}

if (part == "modeltoolbox_sem_remote") {
	DS <- F
	print("Setting DS to F. Will semantify outside of the csoprapreprocessor functions")
	f0 <- function(){
		path <- this.path::this.dir()
		print(path)
		setwd(path)
		setwd("../..")
		csopratools::semantify(
			  inputDir = srcDir,
			  outputDir = srcDir,
			  name = "carboseq",
			  use = "service", 
			  URL = url,
			  extFileNames = paste0(c("crop", "soil", "units"), ".csv")
		)

		# ppi$srcDirOutput <- NULL # Hack

		modeltoolbox::loadCSVs(maxCores = NBCores, cinputCalculator = "cinest", 
		       preprocessorInputs = ppi)
		modeltoolbox::runSims(maxCores = NBCores)
		# res <- modeltoolbox::getYearlySOCResults()
		res <- modeltoolbox::readSocForcingsResults()
		fileName <- "resRun.RData"
		filePath <- file.path(srcOut, fileName)
		save(res, file = filePath)
	}
}

ppi <- list(
			 weatherRetrievalMethod = "service",
		     srcDir = srcDir,
		 	 # srcDirOutput = srcDirOutput,
			 doSemantify = DS,
			 weatherRetrievalURL = "https://coby.infosol.inrae.fr:8080/climate",
			 semantifierServiceURL = url
	    )


print(url)
print(srcDir)
# print(srcDirOutput)
print(srcOut)
print(DS)
print(NBCores)
print(f0)

f0()