### Install EUMDAC from Source Source: https://github.com/eumetlab/data-services/eumdac/blob/public/README.md Clone the EUMDAC repository and install it locally using pip. ```bash git clone https://gitlab.eumetsat.int/eumetlab/data-services/eumdac.git cd eumdac pip install . ``` -------------------------------- ### Install EUMDAC with PIP Source: https://github.com/eumetlab/data-services/eumdac/blob/public/README.md Use this command to install the EUMDAC Python package from PyPI. ```bash pip install eumdac ``` -------------------------------- ### Manage filters, ROIs, and quicklooks Source: https://context7.com/eumetlab/data-services/llms.txt Perform management operations (list, get details, save, update, delete) on filters, regions of interest (ROIs), and quicklooks. The same command structure applies to all resource types. ```bash eumdac tailor filters ``` ```bash eumdac tailor rois ``` ```bash eumdac tailor quicklooks ``` -------------------------------- ### Install EUMDAC with Conda Source: https://github.com/eumetlab/data-services/eumdac/blob/public/README.md Install EUMDAC on an Anaconda Python distribution using the provided conda command. ```bash conda install -c eumetsat-forge eumdac ``` -------------------------------- ### Get job log Source: https://context7.com/eumetlab/data-services/llms.txt Retrieve the log file for a specific customization job. The log contains detailed information about the processing steps and any errors encountered. ```python print(f"Log:\n{customisation.logfile}") ``` -------------------------------- ### Get a specific customization by ID Source: https://context7.com/eumetlab/data-services/llms.txt Retrieve details of a specific customization job using its unique ID. ```python customisation = datatailor.get_customisation('abc123-def456') ``` -------------------------------- ### Get details of a specific chain Source: https://context7.com/eumetlab/data-services/llms.txt Retrieve detailed information about a specific data processing chain using its ID. This is useful for understanding chain configurations. ```bash eumdac tailor chains --id my-chain-id ``` -------------------------------- ### Getting Collection Information Source: https://context7.com/eumetlab/data-services/llms.txt Retrieves metadata about data collections, including search options, date ranges, and descriptions. ```APIDOC ## Getting Collection Information ### Description The `Collection` class provides metadata about data collections including available search options, date ranges, and detailed descriptions. ### Method `datastore.get_collection(collection_id)` ### Endpoint N/A (Method call on DataStore object) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```python from eumdac import AccessToken, DataStore credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datastore = DataStore(token) # Get a specific collection by ID collection = datastore.get_collection('EO:EUM:DAT:MSG:HRSEVIRI') # Access collection properties print(f"Title: {collection.title}") print(f"Abstract: {collection.abstract}") # Get full metadata metadata = collection.metadata print(f"Date range: {metadata['properties'].get('date')}") print(f"License: {metadata['properties'].get('rights')}") # List available search options for the collection for option_name, option_info in collection.search_options.items(): print(f"{option_name}: {option_info['title']}") if option_info['options']: print(f" Accepts: {option_info['options']}") ``` ### Response #### Success Response (200) Returns a `Collection` object with metadata. #### Response Example ```json { "title": "High Rate SEVIRI Level 1.5 Image Data - MSG - 0 degree", "abstract": "This collection contains High Rate (HR) SEVIRI image data...", "metadata": { "properties": { "date": "2004-01-01T00:00:00Z/2024-12-31T23:59:59Z", "rights": "EUMETSAT data policy" } }, "search_options": { "dtstart": {"title": "Start Time", ...}, "dtend": {"title": "End Time", ...}, "bbox": {"title": "Bounding Box", ...} } } ``` ``` -------------------------------- ### Get detailed job status Source: https://context7.com/eumetlab/data-services/llms.txt Retrieve detailed status information for a specific customization job using the verbose flag. This provides more in-depth information about the job's state. ```bash eumdac tailor status job-id-1 -v ``` -------------------------------- ### Get Collection Information and Metadata Source: https://context7.com/eumetlab/data-services/llms.txt Retrieves metadata for a specific data collection, including title, abstract, date range, license, and available search options. Use the collection ID to fetch details. ```python from eumdac import AccessToken, DataStore credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datastore = DataStore(token) # Get a specific collection by ID collection = datastore.get_collection('EO:EUM:DAT:MSG:HRSEVIRI') # Access collection properties print(f"Title: {collection.title}") print(f"Abstract: {collection.abstract}") # Get full metadata metadata = collection.metadata print(f"Date range: {metadata['properties'].get('date')}") print(f"License: {metadata['properties'].get('rights')}") # List available search options for the collection for option_name, option_info in collection.search_options.items(): print(f"{option_name}: {option_info['title']}") if option_info['options']: print(f" Accepts: {option_info['options']}") ``` -------------------------------- ### Initializing the DataStore Source: https://context7.com/eumetlab/data-services/llms.txt Provides the main interface for accessing EUMETSAT's data collections, searching for products, and downloading satellite data. ```APIDOC ## Initializing the DataStore ### Description The `DataStore` class provides the main interface for accessing EUMETSAT's data collections, searching for products, and downloading satellite data. ### Method Initialization of `DataStore` object. ### Endpoint N/A (Class initialization) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```python from eumdac import AccessToken, DataStore # Setup authentication credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) # Initialize DataStore with authenticated token datastore = DataStore(token) # List all available collections for collection in datastore.collections: print(f"{collection} - {collection.title}") ``` ### Response #### Success Response (200) N/A (Class initialization, returns DataStore object) #### Response Example ```json { "message": "DataStore initialized successfully.", "collections_available": [ "EO:EUM:DAT:MSG:HRSEVIRI", "EO:EUM:DAT:MSG:MSG15-RSS", "EO:EUM:DAT:0080" ] } ``` ``` -------------------------------- ### Initialize DataStore for Data Access Source: https://context7.com/eumetlab/data-services/llms.txt Provides the main interface for accessing EUMETSAT's data collections, searching for products, and downloading satellite data. Requires an authenticated token. ```python from eumdac import AccessToken, DataStore # Setup authentication credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) # Initialize DataStore with authenticated token datastore = DataStore(token) # List all available collections for collection in datastore.collections: print(f"{collection} - {collection.title}") # Output example: # EO:EUM:DAT:MSG:HRSEVIRI - High Rate SEVIRI Level 1.5 Image Data - MSG - 0 degree # EO:EUM:DAT:MSG:MSG15-RSS - Rapid Scan High Rate SEVIRI Level 1.5 Image Data - MSG # EO:EUM:DAT:0080 - MVIRI Level 1.5 Climate Data Record - MFG - 0 degree ``` -------------------------------- ### List all orders Source: https://context7.com/eumetlab/data-services/llms.txt List all download orders. This command provides a summary of all orders, including their status and associated data. ```bash eumdac order list ``` -------------------------------- ### Submit job with chain from file Source: https://context7.com/eumetlab/data-services/llms.txt Submit a new customization job using a chain configuration defined in a YAML file. Ensure the YAML file path is correctly specified. ```bash eumdac tailor post -c EO:EUM:DAT:MSG:HRSEVIRI \ -p MSG4-SEVI-MSG15-0100-NA-20240115120000.000000000Z-NA \ --chain ./my_chain.yaml ``` -------------------------------- ### List orders with verbose details Source: https://context7.com/eumetlab/data-services/llms.txt List all download orders with verbose details. The verbose flag provides more comprehensive information about each order. ```bash eumdac order list -v ``` -------------------------------- ### Perform OpenSearch Query Source: https://context7.com/eumetlab/data-services/llms.txt Use OpenSearch queries for flexible product searches. The 'pi' parameter is required. ```python from eumdac import AccessToken, DataStore credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datastore = DataStore(token) # Perform an OpenSearch query (pi parameter is required) query = "pi=EO:EUM:DAT:MSG:HRSEVIRI&dtstart=2024-01-01T00:00:00&dtend=2024-01-01T12:00:00" results = datastore.opensearch(query) print(f"Found {results.total_results} products") for product in results: print(product) ``` -------------------------------- ### List all available chains Source: https://context7.com/eumetlab/data-services/llms.txt List all available data processing chains. This command helps in identifying existing chains for use or management. ```bash eumdac tailor chains ``` -------------------------------- ### Download job outputs Source: https://context7.com/eumetlab/data-services/llms.txt Download the output files for a specific customization job. Specify the output directory using the --output-dir option. ```bash eumdac tailor download job-id-1 --output-dir ./outputs ``` -------------------------------- ### Search for Chains by Product and Format Source: https://context7.com/eumetlab/data-services/llms.txt Utilize the Python API to find processing chains that match specific product and format criteria. ```python matching_chains = datatailor.chains.search(product="HRSEVIRI", format="netcdf4") ``` -------------------------------- ### List all customization jobs Source: https://context7.com/eumetlab/data-services/llms.txt List all submitted customization jobs. This command provides a summary of all jobs, regardless of their status. ```bash eumdac tailor list ``` -------------------------------- ### Submit a new customization job Source: https://context7.com/eumetlab/data-services/llms.txt Submit a new customization job with a specified product and chain configuration. The chain can be defined inline as a JSON string. ```bash eumdac tailor post -c EO:EUM:DAT:MSG:HRSEVIRI \ -p MSG4-SEVI-MSG15-0100-NA-20240115120000.000000000Z-NA \ --chain '{"product": "HRSEVIRI", "format": "netcdf4"}' ``` -------------------------------- ### Initialize AccessToken for Authentication Source: https://context7.com/eumetlab/data-services/llms.txt Handles OAuth2 authentication with EUMETSAT APIs. Initialize with consumer key and secret. Tokens have a default 24-hour validity but can be customized. The token string value triggers automatic refresh if expired. ```python from eumdac import AccessToken # Initialize with your consumer key and secret from EUMETSAT consumer_key = 'your-consumer-key' consumer_secret = 'your-consumer-secret' credentials = (consumer_key, consumer_secret) # Create token with default 24-hour validity token = AccessToken(credentials) # Create token with custom validity period (in seconds) token = AccessToken(credentials, validity=3600) # 1 hour validity # Get the token string value (triggers automatic refresh if expired) token_value = str(token) # Check token expiration time print(f"Token expires at: {token.expiration}") ``` -------------------------------- ### Create a processing chain Source: https://context7.com/eumetlab/data-services/llms.txt Define a processing chain for customizing data products. This includes specifying the product, format, projection, region of interest, and compression. ```python chain = Chain( product="HRSEVIRI", format="netcdf4", projection="geographic", roi=roi, filter=filter_bands, compression={"algorithm": "internal"} ) ``` -------------------------------- ### Resume/restart a failed order Source: https://context7.com/eumetlab/data-services/llms.txt Resume or restart a download order that has failed. This command attempts to continue the download from where it left off or restart the process. ```bash eumdac order restart order-id ``` -------------------------------- ### Download outputs when job is DONE Source: https://context7.com/eumetlab/data-services/llms.txt Download the output files of a completed customization job. The code iterates through the output names, streams the content, and saves it to a specified directory. ```python if customisation.status == 'DONE': output_dir = Path("./tailor_outputs") output_dir.mkdir(exist_ok=True) for output_name in customisation.outputs: output_path = output_dir / Path(output_name).name with customisation.stream_output(output_name) as stream: with output_path.open('wb') as f: f.write(stream.read()) print(f"Downloaded: {output_path}") ``` -------------------------------- ### Create chain from dictionary Source: https://context7.com/eumetlab/data-services/llms.txt An alternative method to create a processing chain by providing configuration as a dictionary. ```python chain_dict = { "product": "HRSEVIRI", "format": "geotiff", "projection": "geographic", "roi": {"NSWE": "60.0,40.0,-10.0,30.0"} } chain = Chain(**chain_dict) ``` -------------------------------- ### Download Products and Entries Source: https://context7.com/eumetlab/data-services/llms.txt Download entire satellite data products or specific files (entries) within a product using a stream for memory-efficient handling of large files. Requires specifying output directory. ```python from pathlib import Path from eumdac import AccessToken, DataStore credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datastore = DataStore(token) collection = datastore.get_collection('EO:EUM:DAT:MSG:HRSEVIRI') results = collection.search( dtstart="2024-01-15T10:00:00", dtend="2024-01-15T10:30:00" ) output_dir = Path("./downloads") output_dir.mkdir(exist_ok=True) for product in results: # Download the full product with product.open() as stream: filename = stream.name output_path = output_dir / filename with output_path.open('wb') as f: # Read and write in chunks for memory efficiency while True: chunk = stream.read(1024 * 1024) # 1 MB chunks if not chunk: break f.write(chunk) print(f"Downloaded: {output_path}") # Download a specific entry (file within the product) for entry in product.entries: if entry.endswith('.nat'): # Example: download only .nat files with product.open(entry=entry) as stream: entry_path = output_dir / stream.name with entry_path.open('wb') as f: f.write(stream.read()) print(f"Downloaded entry: {entry_path}") break ``` -------------------------------- ### Submit multiple products for customization Source: https://context7.com/eumetlab/data-services/llms.txt Submit multiple products for customization in a single request. This is more efficient for batch processing. ```python products = list(results)[:5] # First 5 products customisations = datatailor.new_customisations(products, chain) for c in customisations: print(f"Job {c}: {c.status}") ``` -------------------------------- ### Initialize DataTailor Service Source: https://context7.com/eumetlab/data-services/llms.txt Initialize the DataTailor service to access EUMETSAT's Data Tailor for customizing and processing satellite data products. Provides access to service info, user details, and workspace quota. ```python from eumdac import AccessToken, DataTailor credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) # Initialize DataTailor datatailor = DataTailor(token) # Get service information print(f"Data Tailor Info: {datatailor.info}") print(f"User Info: {datatailor.user_info}") # Check workspace quota quota = datatailor.quota print(f"Workspace usage: {quota}") ``` -------------------------------- ### Set EUMDAC Credentials Source: https://context7.com/eumetlab/data-services/llms.txt Configure your EUMDAC API credentials using the CLI. This command prompts for your consumer key and secret. ```bash eumdac set-credentials your-consumer-key your-consumer-secret ``` -------------------------------- ### List all existing customizations Source: https://context7.com/eumetlab/data-services/llms.txt Retrieve a list of all existing customization jobs managed by the Data Tailor service. Displays job ID and status. ```python import time from pathlib import Path from eumdac import AccessToken, DataTailor credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datatailor = DataTailor(token) # List all existing customizations for customisation in datatailor.customisations: print(f"Job {customisation}: {customisation.status} - {customisation.product_type}") ``` -------------------------------- ### View job log Source: https://context7.com/eumetlab/data-services/llms.txt View the log output for a specific customization job. This is helpful for debugging or understanding job execution details. ```bash eumdac tailor log job-id-1 ``` -------------------------------- ### Access Product Details Source: https://context7.com/eumetlab/data-services/llms.txt Retrieve comprehensive metadata for a specific satellite data product, including sensing times, instrument information, and file entries. Supports LEO and MTG product specific properties. ```python from eumdac import AccessToken, DataStore credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datastore = DataStore(token) # Get a specific product directly product = datastore.get_product( 'EO:EUM:DAT:MSG:HRSEVIRI', 'MSG4-SEVI-MSG15-0100-NA-20240115120000.000000000Z-NA' ) # Access product metadata print(f"Product ID: {product}") print(f"Satellite: {product.satellite}") print(f"Instrument: {product.instrument}") print(f"Product Type: {product.product_type}") print(f"Sensing Start: {product.sensing_start}") print(f"Sensing End: {product.sensing_end}") print(f"Publication Time: {product.ingested}") print(f"Size: {product.size} KB") print(f"MD5 Checksum: {product.md5}") print(f"Orbit Type: {product.orbit_type}") # For LEO products, additional properties are available if product.orbit_is_LEO: print(f"Orbit Number: {product.orbit_number}") print(f"Orbit Direction: {product.orbit_direction}") print(f"Relative Orbit: {product.relative_orbit}") print(f"Cycle Number: {product.cycle_number}") print(f"Timeliness: {product.timeliness}") # For MTG products if product.is_mtg: print(f"Region Coverage: {product.region_coverage}") print(f"Sub-Region: {product.subregion_identifier}") print(f"Repeat Cycle: {product.repeat_cycle}") # List files inside the product (SIP entries) print("Product entries:") for entry in product.entries: print(f" - {entry}") # Get product download URL print(f"Download URL: {product.url}") ``` -------------------------------- ### Download EUMDAC Products Source: https://context7.com/eumetlab/data-services/llms.txt Download products based on search criteria, specific product IDs, or entries. Supports integrity checks, parallel downloads, and output directory structuring. ```bash eumdac download -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15T10:00:00 --end 2024-01-15T10:30:00 \ --output-dir ./downloads eumdac download -c EO:EUM:DAT:MSG:HRSEVIRI \ -p MSG4-SEVI-MSG15-0100-NA-20240115120000.000000000Z-NA \ --output-dir ./downloads eumdac download -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15T10:00:00 --end 2024-01-15T10:30:00 \ --output-dir ./downloads \ --integrity eumdac download -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15T10:00:00 --end 2024-01-15T10:30:00 \ --entry "*.nat" \ --output-dir ./downloads eumdac download -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15T10:00:00 --end 2024-01-15T10:30:00 \ --output-dir ./downloads \ --download-threads 5 eumdac download -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15T10:00:00 --end 2024-01-15T10:30:00 \ --output-dir ./downloads \ --dirs eumdac download -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15 --end 2024-01-16 \ --output-dir ./downloads \ --yes eumdac download -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15T10:00:00 --end 2024-01-15T10:30:00 \ --output-dir ./downloads \ --chain '{"product": "HRSEVIRI", "format": "netcdf4"}' eumdac download-cart ./my_cart.xml --output-dir ./downloads ``` -------------------------------- ### Use context manager for automatic cleanup Source: https://context7.com/eumetlab/data-services/llms.txt Submit a customization job using a context manager. The job is automatically deleted upon exiting the context, ensuring cleanup. ```python with datatailor.new_customisation(product, chain) as customisation: while customisation.status in ['QUEUED', 'RUNNING']: time.sleep(10) # Download outputs... # Job is automatically deleted when exiting the context ``` -------------------------------- ### List archived or failed orders Source: https://context7.com/eumetlab/data-services/llms.txt List download orders that have been archived or have failed. These flags help in identifying orders that may require attention or review. ```bash eumdac order list --archived ``` ```bash eumdac order list --failed ``` -------------------------------- ### Create a band filter for selecting specific channels Source: https://context7.com/eumetlab/data-services/llms.txt Define a filter to select specific bands from a product. This is useful for creating custom processing chains. ```python filter_bands = Filter( name="visible_bands", product="HRSEVIRI", bands=[ {"id": "VIS006", "number": 1, "name": "VIS 0.6"}, {"id": "VIS008", "number": 2, "name": "VIS 0.8"}, {"id": "IR_016", "number": 3, "name": "IR 1.6"} ] ) ``` -------------------------------- ### Submit a single customization job Source: https://context7.com/eumetlab/data-services/llms.txt Submit a single data customization job to the Data Tailor service. Requires authentication credentials and a product to process. ```python from eumdac import AccessToken, DataStore, DataTailor from eumdac.tailor_models import Chain credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datastore = DataStore(token) datatailor = DataTailor(token) # Get a product to customize collection = datastore.get_collection('EO:EUM:DAT:MSG:HRSEVIRI') results = collection.search(dtstart="2024-01-15T12:00:00", dtend="2024-01-15T12:30:00") product = results.first() # Define processing chain chain = Chain( product="HRSEVIRI", format="netcdf4", projection="geographic" ) # Submit a single customization job customisation = datatailor.new_customisation(product, chain) print(f"Customisation ID: {customisation}") print(f"Status: {customisation.status}") ``` -------------------------------- ### Check status of the latest order Source: https://context7.com/eumetlab/data-services/llms.txt Check the status of the most recently placed download order. This is a convenient way to monitor the latest download activity. ```bash eumdac order status latest ``` -------------------------------- ### Create a filter Source: https://context7.com/eumetlab/data-services/llms.txt Create a new data filter configuration from a YAML file. This allows for defining specific criteria for data selection. ```bash eumdac tailor filters --save ./filter.yaml ``` -------------------------------- ### Create a new ROI Source: https://context7.com/eumetlab/data-services/llms.txt Create a new region of interest (ROI) by providing its configuration as a JSON string. The NSWE (North, South, West, East) coordinates define the geographical boundaries. ```bash eumdac tailor rois --save '{"id": "europe", "name": "Europe", "NSWE": "72,34,-25,45"}' ``` -------------------------------- ### Check status of a specific order Source: https://context7.com/eumetlab/data-services/llms.txt Check the status of a specific download order by providing its order ID. This is useful for monitoring download progress. ```bash eumdac order status order-id ``` -------------------------------- ### Delete all orders Source: https://context7.com/eumetlab/data-services/llms.txt Delete all download orders. Use the --all flag to confirm the deletion of all order records. ```bash eumdac order delete --all ``` -------------------------------- ### Authentication with AccessToken Source: https://context7.com/eumetlab/data-services/llms.txt Handles OAuth2 authentication with EUMETSAT APIs, including token generation and automatic renewal. ```APIDOC ## Authentication with AccessToken ### Description The `AccessToken` class handles OAuth2 authentication with EUMETSAT APIs, managing token generation and automatic renewal when tokens expire. ### Method Initialization of `AccessToken` object. ### Endpoint N/A (Class initialization) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```python from eumdac import AccessToken # Initialize with your consumer key and secret from EUMETSAT consumer_key = 'your-consumer-key' consumer_secret = 'your-consumer-secret' credentials = (consumer_key, consumer_secret) # Create token with default 24-hour validity token = AccessToken(credentials) # Create token with custom validity period (in seconds) token = AccessToken(credentials, validity=3600) # 1 hour validity # Get the token string value (triggers automatic refresh if expired) token_value = str(token) # Check token expiration time print(f"Token expires at: {token.expiration}") ``` ### Response #### Success Response (200) N/A (Class initialization, returns token object) #### Response Example ```json { "token_value": "", "expiration": "" } ``` ``` -------------------------------- ### Monitor job progress Source: https://context7.com/eumetlab/data-services/llms.txt Continuously monitor the progress of a customization job. The loop checks the status and progress percentage, pausing for 10 seconds between checks. ```python while customisation.status in ['QUEUED', 'RUNNING']: print(f"Status: {customisation.status}, Progress: {customisation.progress}%") time.sleep(10) print(f"Final status: {customisation.status}") print(f"Duration: {customisation.duration} seconds") print(f"Processing steps: {customisation.processing_steps}") ``` -------------------------------- ### Create and save a new filter Source: https://context7.com/eumetlab/data-services/llms.txt Create a new filter object and save it to the Data Tailor service. Filters are used to select specific bands or channels for processing. ```python new_filter = Filter( id="my_rgb_bands", name="RGB Bands", product="HRSEVIRI", bands=[{"id": "VIS006"}, {"id": "VIS008"}, {"id": "IR_016"}] ) datatailor.filters.create(new_filter) ``` -------------------------------- ### Housekeep orders Source: https://context7.com/eumetlab/data-services/llms.txt Perform housekeep operations on download orders, which typically involves archiving old orders or cleaning up completed downloads. This helps manage storage. ```bash eumdac order housekeep ``` -------------------------------- ### Describe EUMDAC Collections Source: https://context7.com/eumetlab/data-services/llms.txt List available data collections or retrieve detailed information about a specific collection or product using the CLI. Filtering by keyword is supported. ```bash eumdac describe eumdac describe --filter "SEVIRI" eumdac describe --filter "*MSG*" eumdac describe -c EO:EUM:DAT:MSG:HRSEVIRI eumdac describe -c EO:EUM:DAT:MSG:HRSEVIRI -p MSG4-SEVI-MSG15-0100-NA-20240115120000.000000000Z-NA eumdac describe -c EO:EUM:DAT:MSG:HRSEVIRI -p MSG4-SEVI-MSG15-0100-NA-20240115120000.000000000Z-NA -v ``` -------------------------------- ### Searching for Products Source: https://context7.com/eumetlab/data-services/llms.txt Finds products matching specific criteria within a collection, such as date ranges and geographic bounds. ```APIDOC ## Searching for Products ### Description Use the `search()` method on collections to find products matching specific criteria such as date ranges, geographic bounds, and satellite parameters. ### Method `collection.search(dtstart, dtend, bbox, sat, ...)` ### Endpoint N/A (Method call on Collection object) ### Parameters #### Path Parameters None #### Query Parameters - **dtstart** (datetime) - Required - The start date/time for the search. - **dtend** (datetime) - Required - The end date/time for the search. - **bbox** (string) - Optional - Bounding box in the format "west,south,east,north". - **sat** (string) - Optional - Specific satellite identifier (e.g., "MSG4"). #### Request Body None ### Request Example ```python from datetime import datetime from eumdac import AccessToken, DataStore credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datastore = DataStore(token) collection = datastore.get_collection('EO:EUM:DAT:MSG:HRSEVIRI') # Search with date range results = collection.search( dtstart=datetime(2024, 1, 1, 0, 0, 0), dtend=datetime(2024, 1, 1, 23, 59, 59) ) # Get total count without iterating print(f"Total products found: {results.total_results}") # Iterate through results for product in results: print(f"Product ID: {product}") print(f" Sensing start: {product.sensing_start}") print(f" Sensing end: {product.sensing_end}") print(f" Size: {product.size} KB") break # Just show first result # Get only the first product first_product = results.first() # Search with additional parameters results = collection.search( dtstart=datetime(2024, 1, 15), dtend=datetime(2024, 1, 16), bbox="-10,35,30,60", # Bounding box: west,south,east,north sat="MSG4" # Specific satellite ) ``` ### Response #### Success Response (200) Returns a `ProductList` object containing matching products. #### Response Example ```json { "total_results": 150, "products": [ { "id": "", "sensing_start": "2024-01-01T00:00:00Z", "sensing_end": "2024-01-01T00:15:00Z", "size": 5000 }, ... ] } ``` ``` -------------------------------- ### Check workspace quota Source: https://context7.com/eumetlab/data-services/llms.txt Check the current workspace quota usage. Use the verbose flag for more detailed information. ```bash eumdac tailor quota ``` ```bash eumdac tailor quota -v # Verbose output ``` -------------------------------- ### Create Region of Interest and Chain Source: https://context7.com/eumetlab/data-services/llms.txt Use the Python API to define and create custom regions of interest and processing chains. ```python roi = RegionOfInterest( id="mediterranean", name="Mediterranean Sea", NSWE="46.0,30.0,-6.0,37.0", description="Mediterranean region" ) datatailor.rois.create(roi) chain = Chain( id="my_processing_chain", product="HRSEVIRI", format="netcdf4", projection="geographic", description="Standard processing chain" ) datatailor.chains.create(chain) ``` -------------------------------- ### Search EUMDAC Products by Date and Bounding Box Source: https://context7.com/eumetlab/data-services/llms.txt Find products within a specified date range and geographic area. Supports various date formats and bounding box specifications. ```bash eumdac search -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15T00:00:00 \ --end 2024-01-15T23:59:59 eumdac search -c EO:EUM:DAT:MSG:HRSEVIRI \ --time-range 2024-01-15 2024-01-16 eumdac search -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15 --end 2024-01-16 \ --bbox "-10,35,30,60" eumdac search -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15 --end 2024-01-16 \ --satellite MSG4 eumdac search -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15 --end 2024-01-16 \ --limit 10 eumdac search -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15 --end 2024-01-16 \ --sort start --asc eumdac search -c EO:EUM:DAT:METOP:ASCSZF1B \ --start 2024-01-15 --end 2024-01-16 \ --acronym ASCSZF1B eumdac search -c EO:EUM:DAT:MSG:HRSEVIRI \ --start 2024-01-15 --end 2024-01-20 \ --daily-window 10:00:00 14:00:00 ``` -------------------------------- ### Save a new chain from YAML/JSON Source: https://context7.com/eumetlab/data-services/llms.txt Save a new data processing chain configuration from a YAML or JSON file. This allows for creating custom processing workflows. ```bash eumdac tailor chains --save ./chain.yaml ``` -------------------------------- ### Delete a finished job (cleanup) Source: https://context7.com/eumetlab/data-services/llms.txt Delete a completed customization job from the system to clean up resources. This action is irreversible. ```python customisation.delete() print("Job deleted") ``` -------------------------------- ### Check status of specific jobs Source: https://context7.com/eumetlab/data-services/llms.txt Check the status of one or more specific customization jobs by providing their job IDs. This is useful for monitoring progress. ```bash eumdac tailor status job-id-1 job-id-2 ``` -------------------------------- ### List all saved filters Source: https://context7.com/eumetlab/data-services/llms.txt Retrieve a list of all filters saved on the Data Tailor service. This allows you to see available filters and their IDs. ```python from eumdac import AccessToken, DataTailor from eumdac.tailor_models import Chain, Filter, RegionOfInterest, Quicklook credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datatailor = DataTailor(token) # Work with filters # List all saved filters filters = datatailor.filters.search() for f in filters: print(f"Filter: {f.id}") ``` -------------------------------- ### Define Region of Interest for Data Tailor Source: https://context7.com/eumetlab/data-services/llms.txt Create a Region of Interest (ROI) object for use in Data Tailor processing chains. Requires a name, NSWE coordinates (North, South, West, East in decimal degrees), and an optional description. ```python from eumdac.tailor_models import Chain, Filter, RegionOfInterest # Create a Region of Interest (ROI) roi = RegionOfInterest( name="Europe", NSWE="72.0,34.0,-25.0,45.0", # North, South, West, East in decimal degrees description="European coverage area" ) ``` -------------------------------- ### Update an existing chain Source: https://context7.com/eumetlab/data-services/llms.txt Update an existing data processing chain using a YAML file. Ensure the file contains the correct chain ID for modification. ```bash eumdac tailor chains --update ./chain.yaml ``` -------------------------------- ### Clear all jobs Source: https://context7.com/eumetlab/data-services/llms.txt Cancel all running jobs and delete all finished jobs. Use the --all flag to confirm clearing all jobs. ```bash eumdac tailor clear --all ``` -------------------------------- ### Search for Products within a Collection Source: https://context7.com/eumetlab/data-services/llms.txt Searches for satellite data products within a collection using criteria like date ranges, bounding boxes, and specific satellite identifiers. Returns a results object that can be iterated or accessed for the first product. ```python from datetime import datetime from eumdac import AccessToken, DataStore credentials = ('your-consumer-key', 'your-consumer-secret') token = AccessToken(credentials) datastore = DataStore(token) collection = datastore.get_collection('EO:EUM:DAT:MSG:HRSEVIRI') # Search with date range results = collection.search( dtstart=datetime(2024, 1, 1, 0, 0, 0), dtend=datetime(2024, 1, 1, 23, 59, 59) ) # Get total count without iterating print(f"Total products found: {results.total_results}") # Iterate through results for product in results: print(f"Product ID: {product}") print(f" Sensing start: {product.sensing_start}") print(f" Sensing end: {product.sensing_end}") print(f" Size: {product.size} KB") break # Just show first result # Get only the first product first_product = results.first() # Search with additional parameters results = collection.search( dtstart=datetime(2024, 1, 15), dtend=datetime(2024, 1, 16), bbox="-10,35,30,60", # Bounding box: west,south,east,north sat="MSG4" # Specific satellite ) ``` -------------------------------- ### Generate EUMDAC Access Token Source: https://context7.com/eumetlab/data-services/llms.txt Obtain an authentication token for API access. Tokens can be generated with a specific validity period or forced to be new. ```bash eumdac token eumdac token --validity 3600 eumdac token --force ``` -------------------------------- ### Read a specific filter Source: https://context7.com/eumetlab/data-services/llms.txt Retrieve the details of a specific filter from the Data Tailor service using its ID. ```python filter_data = datatailor.filters.read("my_rgb_bands") ``` -------------------------------- ### Delete an order Source: https://context7.com/eumetlab/data-services/llms.txt Delete a specific download order by its ID. This action removes the order record and potentially associated temporary files. ```bash eumdac order delete order-id ``` -------------------------------- ### Update a filter Source: https://context7.com/eumetlab/data-services/llms.txt Update an existing filter on the Data Tailor service. This allows modification of filter properties like its name or band configuration. ```python filter_data.name = "Updated RGB Bands" datatailor.filters.update(filter_data) ``` -------------------------------- ### Delete finished jobs Source: https://context7.com/eumetlab/data-services/llms.txt Delete one or more finished customization jobs by providing their job IDs. This action removes completed jobs from the system. ```bash eumdac tailor delete job-id-1 job-id-2 ``` -------------------------------- ### Cancel a running job Source: https://context7.com/eumetlab/data-services/llms.txt Cancel a customization job that is currently queued or running. This action stops the processing and frees up resources. ```python if customisation.status in ['QUEUED', 'RUNNING']: customisation.kill() print("Job cancelled") ``` -------------------------------- ### Cancel running jobs Source: https://context7.com/eumetlab/data-services/llms.txt Cancel one or more running customization jobs by providing their job IDs. This action stops ongoing processing. ```bash eumdac tailor cancel job-id-1 job-id-2 ``` -------------------------------- ### Delete a filter Source: https://context7.com/eumetlab/data-services/llms.txt Delete a filter from the Data Tailor service using its ID. This action removes the filter permanently. ```python datatailor.filters.delete("my_rgb_bands") ``` -------------------------------- ### Delete a chain Source: https://context7.com/eumetlab/data-services/llms.txt Delete a specific data processing chain by its ID. This action permanently removes the chain from the system. ```bash eumdac tailor chains --delete my-chain-id ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.