CatalogNode: A class for Catalogs (which may contain catalogs references...

CatalogNodeR Documentation

A class for Catalogs (which may contain catalogs references or datasets)

Description

A catalog representation that sublcasses from ThreddsNode

Super class

thredds::ThreddsNode -> CatalogNode

Methods

Public methods

Inherited methods

Method list_services()

list available services

Usage
CatalogNode$list_services(
  xpath = build_xpath("service", prefix = self$prefix),
  form = "list"
)
Arguments
xpath

character, the xpath specifications

form

character, either "list" or "table"

Returns

list of zero or more character vectors


Method list_catalogs()

list available catalogRefs

Usage
CatalogNode$list_catalogs(
  xpath = build_xpath(c("dataset", "catalogRef"), prefix = self$prefix),
  form = "list"
)
Arguments
xpath

character, the xpath descriptor

form

character, either "list" or "table"

Returns

a list with zero or more character vectors


Method list_datasets()

list available datasets

Usage
CatalogNode$list_datasets(
  xpath = build_xpath(c("dataset", "dataset"), prefix = self$prefix),
  form = "list"
)
Arguments
xpath

character, the xpath descriptor

form

character, either "list" or "table"

Returns

a list with zero or more character vectors


Method get_catalogs()

Retrieve a list one or more of child catalogs

Usage
CatalogNode$get_catalogs(
  index,
  xpath = build_xpath(c("dataset", "catalogRef"), prefix = self$prefix)
)
Arguments
index

integer index (1,...,nChild), indices or name(s)

xpath

character xpath representation

Returns

a list of Catalog class objects, possibly NULL


Method get_datasets()

Retrieve list one or more dataset children

Usage
CatalogNode$get_datasets(
  index,
  xpath = build_xpath(c("dataset", "dataset"), prefix = self$prefix)
)
Arguments
index

the integer index (1,...,nChild), indices or name(s)

xpath

character xpath representation

Returns

a list of Dataset objects or NULL


Method get_dataset_names()

Retrieve list zero or more dataset child names. If unnnamed, then we substitute "title", "ID", "urlPath", or "href" in that order of availability.

Usage
CatalogNode$get_dataset_names(
  xpath = build_xpath(c("dataset", "dataset"), prefix = self$prefix)
)
Arguments
xpath

character xpath representation

index

the integer index (1,...,nChild), indices or name(s)

Returns

character vector of zero or more names


Method get_catalog_names()

Retrieve list zero or more catalog child names. If unnnamed, then we substitute "title", "ID", "urlPath" or href" in that order of availability.

Usage
CatalogNode$get_catalog_names(
  xpath = build_xpath(c("dataset", "catalogRef"), prefix = self$prefix)
)
Arguments
xpath

character xpath representation

index

the integer index (1,...,nChild), indices or name(s)

Returns

character vector of zero or more names


Method parse_catalog_node()

Parse a catalog node

Usage
CatalogNode$parse_catalog_node(x)
Arguments
x

xml_node

Returns

Catalog class object


Method parse_dataset_node()

Parse a dataset node

Usage
CatalogNode$parse_dataset_node(x)
Arguments
x

xml_node

Returns

Dataset class object


Method print()

print method

Usage
CatalogNode$print(prefix = "")
Arguments
prefix

character, to be printed before each line of output (like spaces)

...

other arguments for superclass


Method clone()

The objects of this class are cloneable with this method.

Usage
CatalogNode$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

Examples

 
  library(thredds)
  top_uri <- 'https://oceandata.sci.gsfc.nasa.gov/opendap/catalog.xml'
  Top <- thredds::CatalogNode$new(top_uri)
  
  #to browse catalogue
  #Top$browse()
  
  #go down in 'MODISA' catalog
  L3 <- Top$get_catalogs("MODISA")[["MODISA"]]$get_catalogs()[[1]]
  
  #see what's available for 2009
  catalog2009 <- L3$get_catalogs("2009")[[1]]
  
  #get catalog for 2009-01-20 
  doy <- format(as.Date("2009-01-20"), "%m%d")
  catalog20 <- catalog2009$get_catalogs(doy)[[doy]]
  
  #get dataset node
  chl <- catalog20$get_datasets("AQUA_MODIS.20090120.L3m.DAY.CHL.chlor_a.4km.nc")[[1]]
  
  #retrieve the relative URL, and add it to the base URL for the service.
  #Somewhat awkwardly, the relative URL comes prepended with a path separator, so we 
  #use straight up `paste0` to append to the base_uri.
  #if(require("ncdf4")){
  #  base_uri <- "https://oceandata.sci.gsfc.nasa.gov:443/opendap"
  #  uri <- paste0(base_uri, chl[["AQUA_MODIS.20090120.L3m.DAY.CHL.chlor_a.4km.nc"]]$url)
  #  NC <- ncdf4::nc_open(uri)
  #}
 


thredds documentation built on Sept. 1, 2023, 5:08 p.m.