Title: R Interface to Copernicus Marine Service
Version: 0.1.0
Description: Provides an R interface to the Copernicus Marine Service for downloading and accessing marine data. Integrates with the official 'copernicusmarine' Python library through 'reticulate'. Requires Python 3.7+ and a free Copernicus Marine account. See https://marine.copernicus.eu/ and https://pypi.org/project/copernicusmarine/ for more information.
License: MIT + file LICENSE
URL: https://github.com/HansTtito/copernicusR
BugReports: https://github.com/HansTtito/copernicusR/issues
Encoding: UTF-8
RoxygenNote: 7.3.2
Imports: reticulate (≥ 1.20)
Suggests: getPass, testthat (≥ 3.0.0), withr, terra, stars, knitr, rmarkdown
VignetteBuilder: knitr
SystemRequirements: Python (>= 3.7), copernicusmarine Python library
NeedsCompilation: no
Packaged: 2025-07-05 21:04:49 UTC; hkev2
Author: Hans Ttito ORCID iD [aut, cre]
Maintainer: Hans Ttito <kvttitos@gmail.com>
Repository: CRAN
Date/Publication: 2025-07-09 10:50:02 UTC

Copernicus private environment (internal use)

Description

This function creates and manages the internal environment where the package stores persistent objects (e.g., Python module references, configurations, etc.). Uses the package namespace to avoid global environment pollution while providing robust handling for different execution contexts (normal use, testing, etc.).

Usage

.copernicus_env()

Value

An environment object for internal package state management.


Reset internal environment (for testing and cleanup)

Description

Reset internal environment (for testing and cleanup)

Usage

.reset_copernicus_env()

Clear Copernicus Marine credentials

Description

Removes stored Copernicus Marine credentials from session options and environment variables.

Usage

copernicus_clear_credentials()

Value

Invisible TRUE.

Examples

copernicus_clear_credentials()

Search and initialize Python on any operating system (internal use)

Description

Searches for the Python executable in common paths and the system PATH. If found, it initializes it via reticulate.

Usage

copernicus_configure_python(verbose = TRUE)

Value

The detected Python configuration (py_config object).


Download data from Copernicus Marine

Description

Downloads .nc files from the Copernicus Marine catalog. Allows specifying all options of the Python function. Uses stored credentials from options/environment variables if available.

Usage

copernicus_download(
  dataset_id,
  variables,
  start_date,
  end_date,
  bbox = c(-180, 179.92, -80, 90),
  depth = c(0.494, 0.494),
  dataset_version = "202406",
  output_file = NULL,
  username = NULL,
  password = NULL,
  verbose_download = TRUE,
  ...
)

Arguments

dataset_id

ID of the dataset (exact).

variables

Vector or list of variables to download.

start_date

Download start date (YYYY-MM-DD).

end_date

Download end date (YYYY-MM-DD).

bbox

Vector of 4 values (xmin, xmax, ymin, ymax) for the region.

depth

Vector of 2 values: minimum and maximum depth.

dataset_version

Dataset version.

output_file

Output file path. By default, generates one in tempdir().

username

Copernicus Marine username (optional, will try to get from stored credentials).

password

Copernicus Marine password (optional, will try to get from stored credentials).

verbose_download

Show detailed messages.

...

Other extra arguments passed to the Python function.

Value

Absolute path to the downloaded file, or NULL if it fails.


Get Copernicus Marine credentials

Description

Retrieves stored Copernicus Marine credentials from session options or environment variables.

Usage

copernicus_get_credentials(mask_password = TRUE)

Arguments

mask_password

Logical. Should password be masked in output? Default: TRUE.

Value

List with username and password (optionally masked).

Examples

# Get credentials (password masked)
copernicus_get_credentials()

# Get credentials (password visible - use with caution)
copernicus_get_credentials(mask_password = FALSE)

Import the copernicusmarine Python module (internal use)

Description

Import the copernicusmarine Python module (internal use)

Usage

copernicus_import_module(py)

Arguments

py

Python configuration object.

Value

Imported copernicusmarine module.


Install the Python package copernicusmarine (internal use)

Description

Install the Python package copernicusmarine (internal use)

Usage

copernicus_install_package(py = NULL, verbose = TRUE)

Arguments

py

Python configuration object.

verbose

Show detailed messages.

Value

Invisible TRUE if the installation is successful.


Check if Copernicus Marine Python module is ready

Description

Checks if the Python module is properly loaded and credentials are configured to use Copernicus Marine. Returns TRUE if everything is ready.

Usage

copernicus_is_ready(verbose = TRUE)

Arguments

verbose

Show detailed status information.

Value

TRUE if the Python module is loaded and credentials are available.


Open dataset from Copernicus Marine without download

Description

Opens a dataset directly from Copernicus Marine using open_dataset. Returns a Python xarray.Dataset object that can be processed in R. Useful for exploring data without downloading full files. Uses stored credentials from options/environment variables if available.

Usage

copernicus_open_dataset(
  dataset_id,
  variables = NULL,
  start_date = NULL,
  end_date = NULL,
  bbox = NULL,
  depth = NULL,
  dataset_version = NULL,
  username = NULL,
  password = NULL,
  verbose_open = TRUE,
  ...
)

Arguments

dataset_id

ID of the dataset (exact).

variables

Vector or list of variables to open. If NULL, opens all.

start_date

Start date (YYYY-MM-DD). Optional.

end_date

End date (YYYY-MM-DD). Optional.

bbox

Vector of 4 values (xmin, xmax, ymin, ymax) for the region. Optional.

depth

Vector of 2 values: minimum and maximum depth. Optional.

dataset_version

Dataset version. Optional.

username

Copernicus Marine username (optional, will try to get from stored credentials).

password

Copernicus Marine password (optional, will try to get from stored credentials).

verbose_open

Show detailed messages.

...

Other extra arguments passed to the Python function.

Value

Python xarray.Dataset object, or NULL if it fails.


Set Copernicus Marine credentials in environment file

Description

Helper function to set credentials in .Renviron file for persistent storage. This is more secure than storing in scripts.

Usage

copernicus_set_env_credentials(username, password, overwrite = FALSE)

Arguments

username

Character. Copernicus Marine username.

password

Character. Copernicus Marine password.

overwrite

Logical. Overwrite existing credentials in .Renviron? Default: FALSE.

Value

Invisible TRUE if successful.

Examples

## Not run: 
# Set credentials in .Renviron (will persist across R sessions)
copernicus_set_env_credentials("your_username", "your_password")

## End(Not run)

Configure Copernicus Marine credentials

Description

Sets up Copernicus Marine Service credentials using various methods:

  1. Function parameters

  2. R session options

  3. Environment variables

  4. Interactive prompt (only in interactive sessions)

Usage

copernicus_setup_credentials(
  username = NULL,
  password = NULL,
  store_credentials = TRUE,
  prompt_if_missing = interactive()
)

Arguments

username

Character. Copernicus Marine username. If NULL, tries other methods.

password

Character. Copernicus Marine password. If NULL, tries other methods.

store_credentials

Logical. Store credentials in session options? Default: TRUE.

prompt_if_missing

Logical. Prompt user for credentials if not found? Default: TRUE only in interactive sessions.

Value

Invisible list with username and password (password is masked).

Examples

## Not run: 
# Set credentials directly
copernicus_setup_credentials("username", "password")

# Set credentials and store in options
copernicus_setup_credentials("username", "password", store_credentials = TRUE)

# Try to get from environment/options
copernicus_setup_credentials()

## End(Not run)

Test Copernicus integration

Description

Performs a small test download to validate that the whole system works. Uses stored credentials if available. Downloads to tempdir().

Usage

copernicus_test(username = NULL, password = NULL)

Arguments

username

Copernicus Marine username (optional). Will try to get from stored credentials first.

password

Copernicus Marine password (optional). Will try to get from stored credentials first.

Value

TRUE if the test was successful.


Test opening of Copernicus dataset

Description

Performs a test dataset opening to validate that the open_dataset function works. Uses stored credentials if available.

Usage

copernicus_test_open(username = NULL, password = NULL)

Arguments

username

Copernicus Marine username (optional, will try to get from stored credentials first).

password

Copernicus Marine password (optional, will try to get from stored credentials first).

Value

TRUE if the test was successful.


Validate Copernicus Marine credentials

Description

Tests if the stored credentials work by attempting a simple API call.

Usage

copernicus_validate_credentials()

Value

Logical. TRUE if credentials are valid, FALSE otherwise.

Examples

## Not run: 
copernicus_validate_credentials()

## End(Not run)

Set up Copernicus Marine integration with credentials

Description

Sets up the Python environment and loads the copernicusmarine module for use in R. Optionally configures Copernicus Marine credentials for the session. It is recommended to run this once per session before calling other functions in the package. Note: This function does not install Python packages by default for CRAN compliance.

Usage

setup_copernicus(
  install_copernicus = FALSE,
  username = NULL,
  password = NULL,
  store_credentials = TRUE
)

Arguments

install_copernicus

Logical. Should the copernicusmarine package be installed in Python if not available? Default: FALSE (changed for CRAN compliance).

username

Character. Copernicus Marine username. If NULL, will try to get from options or environment variables.

password

Character. Copernicus Marine password. If NULL, will try to get from options or environment variables.

store_credentials

Logical. Should credentials be stored in session options? Default: TRUE.

Value

Invisible TRUE if the configuration was successful.

Examples

## Not run: 
# Basic setup without credentials (manual Python package installation required)
setup_copernicus()

# Setup with credentials
setup_copernicus(username = "your_username", password = "your_password")

# Setup reading from environment variables
setup_copernicus()  # Will look for COPERNICUS_USERNAME and COPERNICUS_PASSWORD

# Setup and store credentials for session
setup_copernicus(username = "user", password = "pass", store_credentials = TRUE)

## End(Not run)