<!-- README.md is generated from README.Rmd. Please edit that file -->
# fadnUtils
Develop by Dimitrios Kremmydas (JRC) and Xinxin Yang (THÜNEN)
The fadnUtils package facilitates the efficient handling of FADN data within the R language framework. Furthermore, the package is targeted for use within the JRC D.4 context. This means that there is a specific temporal pattern of how a user interacts with the package (see Figure plot). 
More specifically, after a request for FADN data from DG-AGRI, this data is delivered to JRC D.4 in csv format.
# Installation
You can install the development version from Thuenen or IIASA Gitlab with:
We request FADN data from DG-AGRI, which is delivered to us in csv format. In order to work efficiently with R, we should convert the csv-data to an r friendly format, this step is done with help of a human-readable file, called `raw_str_map.file`. Both files are necessary. `inst/examples` is the folder for use cases that contain fadnUtils package examples and json files.
1. FADN data in csv format: the data for loading
2. A json file for extracting the variables
### Folder Structure
A working directory is specified arbitrarily by the user. This structure helps data management and maintenance. The directory looks like this:
``` base
CurrentProjectDirectory/
+-- csv
+-- fadnUtils.metadata.json
+-- rds
\-- spool
\-- readme.txt
```
- csv: CSV files are stored here
- fadnUtils.metadata.json: containing the mapping from the fadn.raw.rds to the fadn.str.rds data
- rds: placing r-data in the "rds" directory
- spool: keeping related files
## 2. Import CSV FADN data
First, we will import the data into an R-friendly format using the fadnUtils package.
### Convert the csv data into raw r-data
The raw data will be added to a `rds` directory. We use a convenient function from this package to convert the csv file into raw r-data.
# write a new json file without unmatched variables
rewrite_json=T,
# save the new json in extraction_dir
extraction_dir=new.extraction.dir)
```
#### Convert the raw data into structured r-data using the checked json file
Finally, We can convert a raw r-data to str r-data using a external json file. For more details on converting in fadnUtils packages, `see USE_CASE.R`.
## [1] "Doing id ..."
## [1] "Doing info ..."
## [1] "Doing crops ..."
## ..........................................
##
## D:/public/yang/MIND_STEP/new_sample/test01/raw_str_map.json copied to D:/public/yang/MIND_STEP/New_test_fadnUtils/rds//test/raw_str_map.json
## [1] "Doing id ..."
## [1] "Doing info ..."
## [1] "Doing crops ..."
## ..........................................
#### Files Structure in `rds` folder
After conversion, we can see the `rds` folder:
-`fadn.raw.2009.BEL.rds`: raw r-data for country "BEL" and year "2009"
-`test`: extraction\_dir for saving the structured r-data and extracting json file
-`fadn.str.2009.BEL.rds`: structured s-data for for country of "BEL" and year of "2009"
-`raw_str_map.json`: default json file
-`rewrite_2014_after_copy.json`: modified json file after checking the variables
``` base
rds
+-- fadn.raw.2009.BEL.compressed.rds
+-- fadn.raw.2009.BEL.rds
+-- fadn.raw.2010.BEL.compressed.rds
+-- fadn.raw.2010.BEL.rds
+-- fadn.raw.2011.BEL.compressed.rds
+-- fadn.raw.2011.BEL.rds
+-- fadn.raw.2012.BEL.compressed.rds
+-- fadn.raw.2012.BEL.rds
\-- test
+-- fadn.str.2009.BEL.rds
+-- raw_str_map.json
\-- rewrite_2014_after_copy.json
```
## 3. Load raw r-data and structured r-data
In order to initiate any analysis with `fadnUtils`, we first need to load r-data. We can only load data for countries and years that that has already been imported into a data.dir folder.
### Load raw r-data for the country `BEL` and year `2009`
``` r
my.data.2009.raw=load.fadn.raw.rds(
countries="BEL",
years=2009
)
```
### Load structured data for the country `BEL` and year `2009`
We can load structured from country `BEL` and year `2009`.
``` r
my.data.2009.str=load.fadn.str.rds(
countries="BEL",
years=2009,
extraction_dir="test"# Location of the str r-data
)
```
### Load structured data from all available countries and years.
The following is an example of loading structured data all available countries and years.