Science Score: 54.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
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.8%) to scientific vocabulary
Repository
Piquant XRF spectrum analysis/quantification tool
Basic Info
- Host: GitHub
- Owner: pixlise
- License: apache-2.0
- Language: C
- Default Branch: main
- Size: 16 MB
Statistics
- Stars: 4
- Watchers: 6
- Forks: 0
- Open Issues: 2
- Releases: 2
Metadata Files
README.md
PIQUANT - Quantitative X-ray Fluorescence Analysis
Written for PIXL, the Planetary Instrument for X-ray Lithochemistry"
What's here?
build- Build results directory, created when building. Ignored by git.data-formats- Git sub-module containing protobuf descriptions to generate serialization code from.doc- Documentation/notes.src- Piquant C++ source code.test- Test scripts and data required to test Piquant. Includes config files, spectrum data and expected output.CMakeLists.txt- CMake file to build Piquant. See description below.version.h.in- Template forversion.hthat gets created during build process. See CMake description below.
To compile Piquant for running in Docker
- Install Docker.
- Make sure git submodules are available by running
git submodule initthengit submodule update - Compile Piquant by running
./local-compile.sh
This script starts the compile.sh locally on your machine by running our build container in Docker which has
all the build tools pre-installed. The compile script:
- Runs protoc to generate protobuf serialization code for reading Pixlise binary files
- Runs CMake to generate a make file for Piquant
- Finally, compiles piquant (using make) into an executable for linux to /build/Piquant
To compile Piquant as a Windows 11 executable
- Install Visual Studio Build Tools: winget install Microsoft.VisualStudio.2022.BuildTools --force --override "--wait --passive --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows11SDK.22621"
- Install CMake from https://cmake.org/download/
- Click Start and navigate to "Developer Command Prompt for VS 2022". Click on this and you should find a command prompt window in the path:
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools> - Change to directory containing this repository then compile Piquant by running
.\compile.batThis should compile PIQUANT and place the executable in.\build\Release\Piquant.exe
Build Container
This is a docker container that is part of the project which contains all the required build tools to build any
of our repositories. You shouldn't have to interact with it directly, as we have "local" versions of scripts that
already run things in that docker container, but for reference, it comes from the build-container repository.
Testing Piquant
- Run
./build-test-container.shonce to make sure tests can run. If you change code/test data, this does not need to be re-run. NOTE: if you change code, don't forget to run./local-compile.shto update the executable used inside the test container! - Run
./test.sh
This script: - Builds a docker container to run piquant. It includes python 3 so the piquant-executing script can be run - Runs tests, which are actually python unit tests. Each test assembles a command line and runs piquant. Output result files are then read back and compared to expected output files in python.
Running a specific test
Modify python3 unittest call in ./test/code/runtests.sh to specify the test file name, eg: python3 -m unittest -v test_piquant.py
Versioning of Piquant
When Piquant is built, the version number in the line containing project() in CMakeLists.txt is used
to generate build/version.h which is built into Piquant.
The git branch the compilation is done from is also required. CMakeLists.txt obtains this from the
environment variable GIT_BRANCH_ENV. If this is empty/doesn't exist, it tries GIT_BRANCH_GIT.
The reason for having 2 environment variables is due to needing to build both locally and in gitlab CI, and there being different possibility to execute git commands to read the current branch (in gitlab CI, the env variable is the more dependable solution).
Running Piquant version will output the version and git branch it came from, for example: 3.2.1-branch
To change the version number, edit CMakeLists.txt.
CMake
CMake is used to generate make files for Piquant builds. The simple description of the source and what
compiler flags are required in CMakeLists.txt allow us to generate either make files for linux builds
or if required, Visual Studio solution/project files so we can compile/test Piquant in there.
More can be found at: cmake.org
Protobuf
To help provide a more compact/compressed/reliable data format for use in Pixlise, the required overall dataset
spectrum/location CSV/housekeeping CSV files are converted into a single binary file. The description of this
format is contained in data-formats/experiment.proto.
More about the format can be found at https://developers.google.com/protocol-buffers
To start Piquant faster, it will be able to read from the binary format used by Pixlise, as the overhead of downloading 1000's of individual MSA files is quite large.
Further Reading and Help
Check out the Piquant Wiki
Owner
- Name: Pixlise
- Login: pixlise
- Kind: organization
- Website: https://www.pixlise.org/
- Repositories: 8
- Profile: https://github.com/pixlise
Pixlise Open Source Spectroscopy Analysis
Citation (CITATION.cff)
cff-version: 1.2.0
title: PIQUANT X-Ray Fluorescence Quantification Software
message: >-
Cite this repository for the PIQUANT x-ray fluorescence
quantification software used by the PIXLISE application
type: software
authors:
- given-names: W. Timothy
family-names: Elam
email: wtelam@uw.edu
affiliation: University of Washington
- given-names: Christopher
family-names: Heirwegh
email: christopher.m.heirwegh@jpl.nasa.gov
affiliation: >-
Jet Propulsion Laboratory, California Institute of
Technology
- given-names: Peter
family-names: Nemere
email: peter.nemere@qut.edu.au
affiliation: Queensland University of Technology
- given-names: Ryan
family-names: Stonebraker
email: ryan.a.stonebraker@jpl.nasa.gov
affiliation: >-
Jet Propulsion Laboratory, California Institute of
Technology
- given-names: Adrian
family-names: Galvin
email: adrian.e.galvin@jpl.nasa.gov
affiliation: >-
Jet Propulsion Laboratory, California Institute of
Technology
- given-names: S. Michael
family-names: Fedell
email: steven.m.fedell@jpl.nasa.gov
affiliation: >-
Jet Propulsion Laboratory, California Institute of
Technology
- given-names: Tom
family-names: Barber
email: tom.barber@jpl.nasa.gov
affiliation: >-
Jet Propulsion Laboratory, California Institute of
Technology
- given-names: Scott
family-names: Davidoff
email: scott.davidoff@jpl.nasa.gov
affiliation: >-
Jet Propulsion Laboratory, California Institute of
Technology
orcid: 'https://orcid.org/0000-0002-4417-7268'
identifiers:
- type: doi
value: 10.5281/zenodo.6959125
description: >-
Zenodo persistent reference to latest version, follow
for specific version and release details
repository-code: 'https://github.com/pixlise/diffraction-peak-detection'
url: 'https://www.pixlise.org/'
abstract: >-
PIXLISE gives astrobiologists flexible and powerful visual
analytics tools to quickly analyze and understand
high-density, spatially-localized, imaging and XRF
spectroscopy data. A collaboration between scientists,
engineers and designers, PIXLISE was born out of Data to
Discovery incubation program for science analysis tools,
grew as part of JPL's Data Science Program, and elaborated
into a robust tool through a multi-year partnership
between Queensland University of Technology (QUT) and the
Jet Propulsion Laboratory, California Institute of
Technology.
keywords:
- astrobiology
- geology
- geochemistry
- petrology
- human computer interaction
- spectroscopy
- x-ray florescence
- xrf
- imaging spectroscopy
- data visualization
- visual analytics
- mars 2020
- perseverance
license: Apache-2.0
GitHub Events
Total
- Watch event: 1
- Push event: 4
- Pull request event: 5
- Create event: 1
Last Year
- Watch event: 1
- Push event: 4
- Pull request event: 5
- Create event: 1