Configuration¶
While some of the command line interface programs may work without pointing to a configuration file, the majority of CEDAR is dependent on users providing configuration information from a file. The configuration file describes how “pre-ARD” should be processed (how it should be tiled, named, export options, etc), tracked (file names, etc), and processed into ARD (chunksizes, compression, etc).
The use of configuration files for these details allows you to create separate configuration files depending on the type of ARD you want to create. For example, I might work on two projects that map Mexico, but these projects might use different projections depending on their goals. One project might use Alber’s Equal Area Conic since it also maps the rest of North America, while another might want data in 1 by 1 degree tiles for global mapping. In this example, each project should have its own configuration file with different parametrization of the tile grid and different export locations.
Sections¶
tile_grid
¶
Key |
Description |
---|---|
name |
Name of the grid |
crs |
CRS as Well Known Text |
ul |
Upper left X/Y coordinates |
res |
Pixel X/Y resolution |
size |
Number of pixels in X/Y dimensions for each tile |
limits |
Minimum and maximum rows (vertical) and column (horizontal) |
tracker
¶
Configure how “pre-ARD” is exported to Google Drive or Google Cloud Storage, including how images (GeoTIFFs and JSON metadata) and tracking information (JSON) are given filenames.
Configuration items with the affix _template
may be given as Python format string
(see Python language f-string docs). Templates are provided keys (see table
below for specifics) that allows you to embed useful information, like the
tile, collection, and date range for your “pre-ARD” images or the timestamp of
your order in the tracking metadata filename.
Key |
Description |
---|---|
store |
Name of storage backend – should be “gcs” or “gdrive” |
name_template |
Template for “pre-ARD” image and metadata name. Available keys are “collection”, “tile”, “date_start”, “date_end”, and “now”. |
prefix_template |
Template for “pre-ARD” image and metadata prefix. Available keys are “collection”, “tile”, “date_start”, “date_end”, and “now”. |
tracking_template |
Template for order tracking file name. Available keys are “collections”, “tiles”, “tile_indices”, “period_start”, “period_end”, “period_freq”, and “now”. |
tracking_prefix |
Order tracking file prefix folder |
export_image_kwds |
Image export options for |
filters |
ImageCollection EarthEngine filters to apply before ordering. See https://developers.google.com/earth-engine/ic_filtering |
Note
Make sure that the values you provide for name_template
and
tracking_template
will generate unique names when you order
data. There is a check to make sure that names of “pre-ARD” images
generated within an order are unique, but otherwise your data
will overwrite itself. For example, a name template like
CEDAR_h{tile.horizontal}v{tile.vertical}_{date_start}_{date_end}
will produce duplicate files if you order data from multiple
collections. Providing information about the collection (e.g.,
CEDAR_{collection}_h{tile.horizontal}v{tile.vertical}_{date_start}_{date_end}
) will prevent this name template from resulting in duplicates.
gcs
¶
Key |
Description |
---|---|
bucket_name |
GCS bucket name |
credentials_file |
GCS service account file |
project |
GCS project |
gdrive
¶
Credentials information for Google Drive. It may be more convenient in many
cases, such as using cedar on your own computer, to use
the cedar auth gdrive
(see usage) command to
login and store your credentials (in ~/.config/cedar/credentials.json
).
Key |
Description |
---|---|
client_secrets_file |
OAuth2 “client secrets” file for Google Drive |
credentials_file |
OAuth2 user credentials file for Google Drive |
ard
¶
Settings for how “pre-ARD” GeoTIFF imagery and JSON metadata are converted into “ARD” NetCDF files.
Key |
Description |
---|---|
destination |
Directory name template for converted ARD. Available keys are “collection”, “date_start”, “date_end”, and “tile”. |
encoding |
NetCDF4 image encoding options. See http://xarray.pydata.org/en/stable/io.html#writing-encoded-data |
Generation¶
Instead of starting from scratch, you can also generate an example
configuration file and modify it to suite your needs. You can use
the cedar config template
program to do this:
cedar config template
Usage¶
You need to provide the location of the file to the cedar
command to have
the program use this file. You can specify it in one of two ways: either as an
input to the main program using the -C
flag or using the environment
variable CEDAR_CONFIG_FILE
.
For example, if we wanted to use the status list
subcommand to print our
tracked orders, you could either do
cedar -C my_config_file.yml status list
or
# On Unix systems...
export CEDAR_CONFIG_FILE=my_config_file.yml
cedar status list
When defining the configuration file, it is a good idea to use the absolute
path to the file. This way you can change directories and keep using the
cedar
command. It is also likely easier to specify the configuration file
once using an environment variable than it is to continually point to it
using the cedar -C <config_file>
method.