# HG changeset patch
# User siwaa
# Date 1724856810 0
# Node ID 3e7978af2ba241f7bf22493ae8370de8ed1d5be3
# Parent a069fc43b0b16f08fe7001ccadccc8561bbd4d0e
"planemo upload for repository https://forgemia.inra.fr/carboseq/record-projet-carboseq/-/tree/5f761ea7dab0a6f8c978cbbe4946e16edc6d032e/toos/CarboSeqSimulator commit 5f761ea7dab0a6f8c978cbbe4946e16edc6d032e-dirty"
diff -r a069fc43b0b1 -r 3e7978af2ba2 carboseqSplit.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/carboseqSplit.xml Wed Aug 28 14:53:30 2024 +0000
@@ -0,0 +1,31 @@
+
+ To split input data of CarboSeq
+
+ docker://registry.forgemia.inra.fr/carboseq/record-projet-carboseq:latest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+the CarboSeq CarboseqSimulator tool
+===================================
+
+credits
+-------
+- Wrapper Maintainer: Patrick Chabrier patrick.chabrier@inrae.fr
+- Tool Site: https://forgemia.inra.fr/carboseq/record-projet-carboseq
+- Copyright: INRAE
+
+
diff -r a069fc43b0b1 -r 3e7978af2ba2 carboseqUnsplit.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/carboseqUnsplit.R Wed Aug 28 14:53:30 2024 +0000
@@ -0,0 +1,13 @@
+
+resU <- list(SOC=data.frame(), forcings=data.frame())
+
+for (i in list.files('./inputs')) {
+ load(file.path('.', 'inputs',i))
+ resU$SOC <- rbind(resU$SOC, res$SOC);
+ resU$forcings <- rbind(resU$forcings, res$forcings)
+ rm(res)
+ }
+
+res <-resU
+
+save(res, file = 'csopraRes.Rdata')
\ No newline at end of file
diff -r a069fc43b0b1 -r 3e7978af2ba2 carboseqUnsplit.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/carboseqUnsplit.xml Wed Aug 28 14:53:30 2024 +0000
@@ -0,0 +1,33 @@
+
+ To unsplit CarboSeq results
+
+ docker://registry.forgemia.inra.fr/csopra/csopralibs:siwa
+
+
+
+
+
+
+
+
+
+
+
+
+the CarboSeq CarboseqSimulator tool
+===================================
+
+credits
+-------
+- Wrapper Maintainer: Patrick Chabrier patrick.chabrier@inrae.fr
+- Tool Site: https://forgemia.inra.fr/carboseq/record-projet-carboseq
+- Copyright: INRAE
+
+
diff -r a069fc43b0b1 -r 3e7978af2ba2 csopraSplitInput.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/csopraSplitInput.py Wed Aug 28 14:53:30 2024 +0000
@@ -0,0 +1,50 @@
+import pandas as pd
+import os
+import shutil
+import math
+import sys
+
+def split_csv(input_folder, output_folder, max_chunck_size):
+ unit_path = input_folder + "/units.csv"
+ soil_path = input_folder + "/soil.csv"
+ crop_path = input_folder + "/crop.csv"
+
+ os.mkdir(output_folder)
+
+ dfs = pd.read_csv(soil_path)
+ dfc = pd.read_csv(crop_path)
+
+ max_ID = dfs.loc[dfs['ID'].idxmax()]['ID']
+
+ step = max_chunck_size
+
+ nb_split = math.ceil(max_ID / max_chunck_size)
+
+ print(max_ID)
+
+ print(nb_split)
+
+ for i in range(1,nb_split + 1):
+
+ dfSplit = pd.DataFrame()
+ dfSplit = dfs.loc[((dfs['ID'] >= (((i-1) * step)) + 1) & (dfs['ID'] <= ((((i-1) * step)) + step )))]
+
+ dfcSplit = pd.DataFrame()
+ dfcSplit = dfc.loc[((dfc['ID'] >= (((i-1) * step)) + 1) & (dfc['ID'] <= ((((i-1) * step)) + step )))]
+
+ os.mkdir(os.path.join(output_folder, f"{input_folder}_{i}"))
+ shutil.copy(unit_path, os.path.join(output_folder, f"{input_folder}_{i}"))
+ dfSplit.to_csv(os.path.join(output_folder, f"{input_folder}_{i}", "soil.csv"), index=False)
+ dfcSplit.to_csv(os.path.join(output_folder, f"{input_folder}_{i}", "crop.csv"), index=False)
+ shutil.make_archive( os.path.join(output_folder,f"{input_folder}_{i}"), 'zip', os.path.join(output_folder, f"{input_folder}_{i}"))
+
+# Example usage
+input_folder = "input"
+output_folder = "outputs"
+
+input_file = sys.argv[1]
+max_chunck_size = int(sys.argv[2])
+
+shutil.unpack_archive(input_file, input_folder, 'zip')
+
+split_csv(input_folder, output_folder, max_chunck_size)