Skip to main content

CEDA Facet Scanner

Static Badge GitHub Release PyPI version

May 2026 - Merge with Tag Scanner

The dependency package cci-tag-scanner has been merged into this repository, as it no longer serves a useful purpose to keep the two packages separated. All required content will be migrated from the tag scanner into this package.

  • tagger.processDatasets
  • es_connection_kwargs/ElasticsearchConnection

CEDA Dependencies

Static Badge Static Badge

Takes datasets and extracts the facets from the files/filepath. The scanner works to map a file path to the specific handler for that collection of files. For example, ESA CCI datasets are scanned by the cci handler. This is because each collection of datasets will have different characteristics and will need to be treated in a different way.

ReadTheDocs Documentation

Installation

Create a Python virtual environment: Must be Python 3

python -m venv venv
source venv/bin/activate

This package can be installed with the following:

git clone https://github.com/facet-scanner
cd facet-scanner
pip install -e .

NOTE: As of 22nd Jan 2025 the facet-scanner repository has been upgraded for use with Poetry version 2. This requires the use of an additional requirements_fix.txt patch while a solution for poetry dependencies in github is worked on. The above installation MUST be supplemented with:

pip install -r requirements_fix.txt

This is a temporary fix and will be removed when poetry is patched.

Running the code

facet_scanner (path_to_scan) [--conf <path_to_config.ini>]

Required:

Argument Description
path_to_scan File path in the archive to use as the basis of the scan. The scanner will take this path and retrieve all the files in the elasticsearch index at this point.

Optional:

Option No. Arguments Description
--conf 1 Allows you to set a different location for the config file.This defaults to ../conf/facet_scanner.ini relative to the script.

Adding a new Collection

Adding a Handler Documentation

Facet Indexing with Rabbit

This repo also provides the code to read from the rabbit queue and process updates to the files index, adding facets.

Watched events:

  • DEPOSIT

Exposed Queue Consumer Classes:

  • rabbit_facet_indexer.queue_consumers.FacetScannerQueueConsumer

Configuration

Configuration is handled using a YAML file. The full configuration options are described in the rabbit_indexer repo

This process also requires an environment variable JSON_TAGGER_ROOT. This should be set to the json directory which contains the tagging json.

The required sections for the facet indexer are:

  • rabbit_server
  • indexer
  • logging
  • moles
  • elasticsearch
  • files_index

An example YAML file (secrets noted by ***** ):

---
rabbit_server:
  name: "*****"
  user: "*****"
  password: "*****"
  vhost: "*****"
  source_exchange:
    name: deposit_logs
    type: fanout
  dest_exchange:
    name: fbi_fanout
    type: fanout
  queues:
    - name: elasticsearch_update_queue_opensearch_tags_test
      kwargs:
        auto_delete: false
    - name: elasticsearch_update_queue_opensearch_tags_test
      bind_kwargs:
        routing_key: opensearch.tagger.cci
indexer:
  queue_consumer_class: rabbit_facet_indexer.queue_consumers.FacetScannerQueueConsumer
  path_filter:
    paths:
      - /neodc/esacci
    filter_policy: 2
logging:
  log_level: info
moles:
  moles_obs_map_url: http://api.catalogue.ceda.ac.uk/api/v2/observations.json/?publicationState__in=citable,published,preview,removed&fields=publicationState,result_field,title,uuid
elasticsearch:
  es_api_key: "*****"
files_index:
  name: ceda-fbi
  calculate_md5: false
  scan_level: 2

Running

The indexer can be run using the helper script provided by rabbit_indexer repo. This uses an entry script and parses the config file to run your selected queue_consumer_class:

rabbit_event_indexer --conf <path_to_configuration_file>

Metadata

Release files for cci-facet-scanner 0.8.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cci-facet-scanner 0.8.8
File Size Uploaded
cci_facet_scanner-0.8.8.tar.gz 56.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cci-facet-scanner 0.8.8
File Interpreter ABI Platform
cci_facet_scanner-0.8.8-py3-none-any.whl Python 3 none any Details

Total release size: 132.2 kB

Release files / cci_facet_scanner-0.8.8.tar.gz

Download URL cci_facet_scanner-0.8.8.tar.gz
Size 56.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dfdefa6f5e4a68d9f2bb8efdb3982b7c1c0578bb9ed2ba66d4143fcfd9635813
BLAKE2b-256 checksum
How to use checksums
3c1cc352e8a168b95ca4ff935d676c0d30f92e0c410ef5773855f7d60c30bcb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.12.8 Darwin/25.6.0

Release files / cci_facet_scanner-0.8.8-py3-none-any.whl

Download URL cci_facet_scanner-0.8.8-py3-none-any.whl
Size 75.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
00fcdba2695304cda1f8eb96dcf596ce3f948c620183f36135c22a7d2758d97e
BLAKE2b-256 checksum
How to use checksums
54e66bbc9d3cb82513029a354d9dc532f004881a66293a4293061f3f17e48c1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.12.8 Darwin/25.6.0

Release history Release notifications | RSS feed

This release

0.8.8 This release

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page