This repository provides a Python-based tool to synchronize data from the V20 Berlin beamline to the European Spallation Source (ESS) neutron data catalog. It handles data transfer, authentication, reconciliation, and validation for seamless integration into the catalog.
- Data Synchronization: Fetches and syncs neutron beamline data to ESS.
- Service Account Authentication: Ensures secure access to the data catalog.
- Reconciliation & Validation: Verifies the data sync process for accuracy.
- Python 3.8+
- Required libraries:
requests
pandas
Install dependencies:
pip install requests pandas
-
Clone the repository:
git clone https://github.com/your-username/neutron-data-sync.git
cd neutron-data-sync -
Install dependencies:
pip install -r requirements.txt
-
Update the
config.json
file with:- Source and destination details.
- ESS service account credentials.
-
Sync data from V20 to ESS:
python sync_data.py -
Reconcile and validate synced data:
python validate_sync.py
sync_data.py
: Script for syncing data between beamlines.validate_sync.py
: Script for reconciling and validating synced data.config.json
: Configuration for source, destination, and authentication.requirements.txt
: Python dependencies.README.md
: Documentation for the repository.
-
Start data sync:
python sync_data.py -
Validate the sync process:
python validate_sync.py
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature -
Commit your changes:
git commit -m "Add your feature" -
Push the branch:
git push origin feature/your-feature -
Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
Streamline neutron data syncing and validation with this Python tool! π‘π¬