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
Last synced: 6 months ago · JSON representation ·

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
Created 11 months ago · Last pushed 10 months ago
Metadata Files
Readme License Citation Codemeta

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

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
enhancement (6) documentation (1)
Pull Request Labels

Dependencies

.github/workflows/python-app.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
mappingservice-plugin/build.gradle maven
  • org.slf4j:slf4j-api 2.0.17 implementation
  • org.springframework:spring-core 6.2.5 implementation
requirements.dist.txt pypi
  • 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 *
requirements.txt pypi
  • 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 *