{"id":32204634,"url":"https://github.com/bhavshah01/conscir","last_synced_at":"2025-10-22T04:59:49.274Z","repository":{"id":273784752,"uuid":"901612658","full_name":"BhavShah01/ConSciR","owner":"BhavShah01","description":"Tools for Conservation Science","archived":false,"fork":false,"pushed_at":"2025-09-22T15:54:28.000Z","size":45460,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-22T04:59:46.822Z","etag":null,"topics":["conservation-science","heritage","heritage-conservation","heritage-science","humidity","r","rpackage","sustainability"],"latest_commit_sha":null,"homepage":"https://bhavshah01.github.io/ConSciR/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BhavShah01.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-11T01:44:46.000Z","updated_at":"2025-09-22T15:49:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"0d214945-fe2c-4890-81c3-5c446f3fc3e0","html_url":"https://github.com/BhavShah01/ConSciR","commit_stats":null,"previous_names":["bhavshah01/conscir"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/BhavShah01/ConSciR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BhavShah01%2FConSciR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BhavShah01%2FConSciR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BhavShah01%2FConSciR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BhavShah01%2FConSciR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BhavShah01","download_url":"https://codeload.github.com/BhavShah01/ConSciR/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BhavShah01%2FConSciR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280382997,"owners_count":26321423,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-22T02:00:06.515Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conservation-science","heritage","heritage-conservation","heritage-science","humidity","r","rpackage","sustainability"],"created_at":"2025-10-22T04:59:41.119Z","updated_at":"2025-10-22T04:59:49.268Z","avatar_url":"https://github.com/BhavShah01.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  warning = FALSE, \n  message = FALSE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"100%\"\n)\n\n # ConSciR \u003ca href=\"https://bhavshah01.github.io/ConSciR/\"\u003e\u003cimg src=\"man/figures/logo.png\" align=\"right\" height=\"139\" alt=\"ConSciR website\" /\u003e\u003c/a\u003e\n```\n\n\n# ConSciR \u003ca href=\"https://bhavshah01.github.io/ConSciR/\"\u003e\u003cimg src=\"man/figures/logo.png\" align=\"right\" height=\"139\" alt=\"ConSciR website\" /\u003e\u003c/a\u003e\n\n\u003c!-- badges: start --\u003e\n\n\u003c!-- badges: end --\u003e\n\n`ConSciR` provides tools for the analysis of cultural heritage preventive conservation data. \n\nIt includes functions for environmental data analysis, humidity calculations, sustainability metrics, conservation risks, and data visualisations such as psychrometric charts. It is designed to support conservators, scientists, and engineers by streamlining common calculations and tasks encountered in heritage conservation workflows. The package is motivated by the framework outlined in Cosaert and Beltran et al. (2022) \"Tools for the Analysis of Collection Environments\" [\"Tools for the Analysis of Collection Environments\"](https://www.getty.edu/conservation/publications_resources/pdf_publications/tools_for_the_analysis_of_collection_environments.html \"Getty Tools publication\").\n\n`ConSciR` is intended for:\\\n- Conservators working in museums, galleries, and heritage sites\\\n- Conservation scientists, engineers, and researchers\\\n- Data scientists developing applications for conservation\\\n- Cultural heritage professionals involved in preventive conservation\\\n- Students and educators in conservation and heritage science programmes\n\nThe package is also designed to be:\\\n- **FAIR**: Findable, Accessible, Interoperable, and Reusable\\\n- **Collaborative**: enabling contributions, feature requests, bug reports, and\nadditions from the wider community\n\nIf using R for the first time, read an article here: [Using R for the first time](https://bhavshah01.github.io/ConSciR/articles/ConSciR-FirstTimeR.html)\n\n## Tools\n\n-   Humidity calculations, conservator tools, and sustainability metrics.\n-   Mould growth models and damage risk functions.\n-   Graphical outputs including temperature-relative humidity (TRH) plots, psychrometric charts and data for other applications.\n-   Data tidying functions compatible with Meaco and Hanwell environmental monitoring devices.\n-   Interactive Shiny applications enabling dynamic data exploration and visualisation.\n\n## Install and load\n\n``` r\ninstall.packages(\"ConSciR\")\nlibrary(ConSciR)\n```\n\nYou can install the development version of the package from GitHub using the `pak` package:\n\n``` r\ninstall.packages(\"pak\")\npak::pak(\"BhavShah01/ConSciR\")\n\n# Alternatively\n# install.packages(\"devtools\")\n# devtools::install_github(\"BhavShah01/ConSciR\")\n```\n\nFor full details on all functions, see the package [Reference](https://bhavshah01.github.io/ConSciR/reference/index.html) manual.\n\n\n## Examples\n\nThis section demonstrates some common tasks you can perform with the ConSciR package.\n\n-   **Load packages**\\\n    Load ConSciR and some commonly used tidyverse packages for data manipulation and plotting.\n\n```{r packages, message=FALSE, warning=FALSE}\nlibrary(ConSciR)\nlibrary(dplyr)\nlibrary(ggplot2)\n```\n\n-   **Access an example dataset**\\\n    A pre-loaded dataset (`mydata`) is included for testing and demonstration. Use `head()` to view the first few rows and inspect the data structure.\n-   Users can rename columns and structure their own datasets similarly to `mydata` to ensure compatibility with ConSciR functions, which expect variables such as temperature and relative humidity in specific column names.\n\n```{r load_dataset, message=FALSE, warning=FALSE}\n# My TRH data\nfilepath \u003c- data_file_path(\"mydata.xlsx\")\nmydata \u003c- readxl::read_excel(filepath, sheet = \"mydata\")\nmydata \u003c- mydata |\u003e filter(Sensor == \"Room 1\")\n\nhead(mydata)\n```\n\n-   **Perform calculations on the data**\\\n    Use ConSciR functions to add metrics such as dew point, absolute humidity, mould, preservation index and others to the dataset. More functions are available; see the package [Reference](https://bhavshah01.github.io/ConSciR/reference/index.html) for details.\n\n```{r add_calcs, message=FALSE, warning=FALSE}\n# Peform calculations\nhead(mydata) |\u003e\n  mutate(\n    # Dew point\n    DewP = calcDP(Temp, RH), \n    \n    # Absolute humidity\n    Abs = calcAH(Temp, RH), \n    \n    # Mould risk \n    Mould = ifelse(RH \u003e calcMould_Zeng(Temp, RH), \"Mould risk\", \"No mould\"), \n    \n    # Preservation Index, years to deterioration \n    PI = calcPI(Temp, RH), \n    \n    # Scenario: Humidity if the temperature was 2°C higher\n    RH_if_2C_higher = calcRH_AH(Temp + 2, Abs) \n    ) |\u003e\n  glimpse()\n```\n\n-   **Combine analysis with visualisation**\\\n    Add a dew point line to the temperature-relative humidity graph using the package’s built-in plotting function **`graph_TRH()`**.\n\n```{r graphTRH_DewPoint, message=FALSE, warning=FALSE, fig.alt=\"graphTRH\"}\nmydata |\u003e\n  mutate(DewPoint = calcDP(Temp, RH)) |\u003e\n  graph_TRH() + \n  geom_line(aes(Date, DewPoint), col = \"cyan3\") + # add dew point \n  theme_bw()\n```\n\n-   **Conservator tools: mould growth estimation**\\\n    Calculate mould growth risk using **`calcMould_Zeng()`** function and visualise it alongside humidity data.\n\n```{r mould_risk, message=FALSE, warning=FALSE, fig.alt=\"mould\"}\nmydata |\u003e\n  mutate(Mould = calcMould_Zeng(Temp, RH)) |\u003e\n  ggplot() +\n  geom_line(aes(Date, RH), col = \"royalblue3\") +\n  geom_line(aes(Date, Mould), col = \"darkorchid\", size = 1) +\n  labs(title = \"Mould Growth Rate Limits\", \n       subtitle = \"Mould growth initiates when RH goes above threshold\",\n       x = NULL, y = \"Humidity (%)\") +\n  facet_grid(~Sensor) + \n  theme_classic(base_size = 14)\n```\n\n-   **Graphs: generate a psychrometric chart**\\\n    Visualise the data using a psychrometric chart with the function `graph_psychrometric()`. The example shows how a basic plot can be customised; data transparency, temperature and humidity ranges, and the y-axis function. \n\n```{r psychart, message=FALSE, warning=FALSE, fig.alt=\"psych_chart\"}\n# Customise \nmydata |\u003e\n  graph_psychrometric(\n    data_alpha = 0.2,\n    LowT = 8, \n    HighT = 28,\n    LowRH = 30,\n    HighRH = 70,\n    y_func = calcAH\n    ) +\n  theme_classic() + \n  labs(title = \"Psychrometric chart\")\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhavshah01%2Fconscir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbhavshah01%2Fconscir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhavshah01%2Fconscir/lists"}