ape_he_mapper
Science Score: 52.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
✓Institutional organization owner
Organization kit-data-manager has institutional domain (www.scc.kit.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: kit-data-manager
- License: apache-2.0
- Language: Python
- Default Branch: main
- Size: 3.15 MB
Statistics
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
- Releases: 0
Metadata Files
README.md
APE-HE Mapper
Overview
APE-HE Mapper is a tool designed for mapping APE-HE (Advanced Photoelectric Effect - High Energy) metadata to a uniform, schema-compliant json format. This project includes the extraction of metadata from NeXus (.nxs) files and can be extended for other existing formats.
The target format of the mapper follows pre-defined schemas developed for metadata description of APE-HE experiments.
About APE-HE
APE-HE is a beamline at the Elettra-Sincrotrone Trieste synchrotron, where a range of scientific techniques are performed. The current implementation supports techniques listed in the ape-he schema: XAS, XMCD, IV CURVE, 2D MAP, which represent the subset of experiments that have been made FAIR-compliant so far.
Usage
1. Python Command Line Interface
Prerequisites
Minimal supported python version: 3.10
Cloning the Repository
To get started, clone the repository and navigate to the project directory:
git clone https://github.com/kit-data-manager/ape_he_mapper.git
cd ape_he_mapper
Setting Up the Environment
You can optionally set up a virtual environment. Depending on your environment, you may have to use the python3 alias instead of python for the following commands.
Install the required dependencies:
pip install -r requirements.txt
Running the Mapper
To run the mapper, use the mapping_cli module:
python -m mapping_cli
1. For single file
The mapper expects a map file, a metadata file, and a JSON output path:
python -m mapping_cli <path_to_schema.json> <path_to_NeXus_file.nxs> <output_document.json>
For further information about the necessary map file, see Mapping README
2. For zipped file
The mapper expects a map file, a zip file, and a zip output path:
python -m mapping_cli <path_to_schema.json> <path_to_zipped_NeXus_files.zip> <output_document.zip>
For further information about necessary map file, it will be the same as previously - see Mapping README
Note that only valid files within the zipped input archive will be processed and included in the output zip. Invalid files will be skipped.
2. Usage as plugin for the Mapping-Service
The mapper can be used as a plugin for the kit-data-manager/Mapping-Service. The necessary gradle project to build the plugin is included in the plugin subfolder.
Plugin and Python code base share the same semantic versioning, so the plugin version always indicates the specific script version used for mapping. This behaviour can be explicitly overriding
(for example for testing or for working with older versions of the mapping service). To do this, on gradle build time provide the environment variable VERSION_OVERRIDE_BY_BRANCH.
The variable needs to contain a branch name of this repo and branch deletion may break a plugin in use. Only use this option very carefully. Do not use this option for production.
An environment that allows the unrestricted installation of Python packages is also recommended for using the plugin.
Testing
Run tests using pytest:
pytest tests
Supported instruments and formats
The following list provides the range of formats, that have been tested via sample data:
Metadata File Format
- neXus
Instrument
- Elettra-Sincrotrone Trieste synchrotron
Acknowlegdements
This work was carried out with the support of the EU’s H2020 framework program for research and innovation under grant agreement n. 101007417, NFFA-Europe Pilot.
Owner
- Name: KIT Data Manager
- Login: kit-data-manager
- Kind: organization
- Email: webmaster@datamanger.kit.edu
- Location: Karlsruhe, Germany
- Website: https://www.scc.kit.edu/ueberuns/dem.php
- Repositories: 56
- Profile: https://github.com/kit-data-manager
Generic software and recommendations for FAIR research data management by DEM.
Citation (CITATION.cff)
cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.
type: software
title: APE-HE mapper
abstract: APE-HE Mapper is a tool designed for mapping APE-HE (Advanced Photoelectric
Effect - High Energy) metadata to a uniform, schema-compliant json format.
version: v1.0.0
keywords:
- APE-HE
- neXus
- metadata
- extraction
- schema
authors:
- orcid: https://orcid.org/0000-0002-6745-3464
given-names: Gabin Thibaut
family-names: Oumbe Tekam
- orcid: https://orcid.org/0000-0003-3974-3728
given-names: Germaine
family-names: Götzelmann
- orcid: https://orcid.org/0000-0003-2534-0063
given-names: Rossella
family-names: Aversa
- given-names: Dario
family-names: De Angelis
orcid: https://orcid.org/0000-0001-9199-6373
- family-names: Modolo
orcid: https://orcid.org/0000-0002-9576-8615
given-names: Irene
contact:
- orcid: https://orcid.org/0000-0002-6745-3464
given-names: Gabin Thibaut
family-names: Oumbe Tekam
- orcid: https://orcid.org/0000-0003-3974-3728
given-names: Germaine
family-names: Götzelmann
license: Apache-2.0
repository-code: https://github.com/kit-data-manager/ape_he_mapper
CodeMeta (codemeta.json)
{
"@context": [
"https://doi.org/10.5063/schema/codemeta-2.0",
"https://w3id.org/software-iodata",
"https://raw.githubusercontent.com/jantman/repostatus.org/master/badges/latest/ontology.jsonld",
"https://schema.org",
"https://w3id.org/software-types"
],
"@type": "SoftwareSourceCode",
"author": [
{
"@type": "Person",
"givenName": "Gabin Thibaut",
"familyName": "Oumbe Tekam",
"@id": "https://orcid.org/0000-0002-6745-3464",
"identifier": "https://orcid.org/0000-0002-6745-3464"
},
{
"@type": "Person",
"givenName": "Germaine",
"familyName": "Gtzelmann",
"@id": "https://orcid.org/0000-0003-3974-3728",
"identifier": "https://orcid.org/0000-0003-3974-3728"
}
],
"name": "APE-HE mapper",
"description": "APE-HE Mapper is a tool designed for mapping APE-HE (Advanced Photoelectric Effect - High Energy) metadata to a uniform, schema-compliant json format.",
"version": "v1.0.0",
"keywords": [
"APE-HE",
"neXus",
"metadata",
"extraction",
"schema"
],
"maintainer": [
{
"@type": "Person",
"givenName": "Gabin Thibaut",
"familyName": "Oumbe Tekam",
"@id": "https://orcid.org/0000-0002-6745-3464",
"identifier": "https://orcid.org/0000-0002-6745-3464"
},
{
"@type": "Person",
"givenName": "Germaine",
"familyName": "Gtzelmann",
"@id": "https://orcid.org/0000-0003-3974-3728",
"identifier": "https://orcid.org/0000-0003-3974-3728"
}
],
"license": [
"https://spdx.org/licenses/Apache-2.0"
],
"codeRepository": "https://github.com/kit-data-manager/ape_he_mapper",
"contributor": [
{
"@type": "Person",
"givenName": "Irene",
"familyName": "Modolo",
"@id": "https://orcid.org/0000-0002-9576-8615",
"identifier": "https://orcid.org/0000-0002-9576-8615"
},
{
"@type": "Person",
"givenName": "Dario",
"familyName": "De Angelis",
"@id": "https://orcid.org/0000-0001-9199-6373",
"identifier": "https://orcid.org/0000-0001-9199-6373"
},
{
"@type": "Person",
"givenName": "Rossella",
"familyName": "Aversa",
"@id": "https://orcid.org/0000-0003-2534-0063",
"identifier": "https://orcid.org/0000-0003-2534-0063"
}
]
}
GitHub Events
Total
- Issues event: 2
- Delete event: 1
- Issue comment event: 4
- Push event: 14
- Pull request event: 5
- Create event: 3
Last Year
- Issues event: 2
- Delete event: 1
- Issue comment event: 4
- Push event: 14
- Pull request event: 5
- Create event: 3
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 7
- Total pull requests: 11
- Average time to close issues: 13 days
- Average time to close pull requests: 3 days
- Total issue authors: 1
- Total pull request authors: 2
- Average comments per issue: 0.86
- Average comments per pull request: 0.0
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 7
- Pull requests: 11
- Average time to close issues: 13 days
- Average time to close pull requests: 3 days
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 0.86
- Average comments per pull request: 0.0
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- gabinoumbe (7)
Pull Request Authors
- gabinoumbe (10)
- GGoetzelmann (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- actions/setup-python v5 composite
- org.slf4j:slf4j-api 2.0.17 implementation
- org.springframework:spring-core 6.2.5 implementation
- deepmerge >=2.0
- h5py *
- jsonpath-ng >=1.7
- magika >=0.5.1
- numpy *
- pandas *
- pillow >=10.3
- pydantic >=2.10
- requests *
- validators >=0.34
- xmltodict >=0.14
- zipfile2 *
- deepmerge >=2.0
- h5py *
- jsonpath-ng >=1.7
- magika >=0.5.1
- numpy *
- pandas *
- pillow >=10.3
- pydantic >=2.10
- pytest >=7.4
- pytest-cov >=6.0
- pytest-mock >=3.14.0
- requests *
- validators >=0.34
- xmltodict >=0.14
- zipfile2 *