NcCut

NcCut: A NetCDF Viewer and Transecting Tool - Published in JOSS (2025)

https://github.com/rchartra/nccut

Science Score: 100.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
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    2 of 3 committers (66.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

standardization

Scientific Fields

Mathematics Computer Science - 84% confidence
Earth and Environmental Sciences Physical Sciences - 64% confidence
Last synced: 4 months ago · JSON representation ·

Repository

A GUI for visualizing and transecting 3D data.

Basic Info
Statistics
  • Stars: 9
  • Watchers: 3
  • Forks: 4
  • Open Issues: 0
  • Releases: 16
Created over 3 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

NcCut

DOI License Project Status: Active – The project has reached a stable, usable state and is being actively developed. App workflow

Documentation: NcCut Docs

NcCut is a GUI for getting pixel data from images and data values from NetCDF files along linear transects. This simplifies the analysis of images with linear features where the brightness of the pixel can be used to gauge some physical value. Some examples include measuring sea ice floe concentration or characterizing ice sheet fractures from satellite imagery. For NetCDF files, NcCut serves as an easy way to view datasets quickly along any set of dimensions and to extract data along transects. Using NcCut users can view vertical cross-sections of their data over all values of a third dimension along the transect drawn. In addition, NcCut is designed to make the measurement of linear features as automatic as possible through it's "Orthogonal Chain" tool where linear features can be marked out and have transects be made perpendicular to the feature. Multiple features can be marked at once on a file, saved all together, and then be reloaded and continued or edited.

Users can display a plot of the data as well as package the data into an exportable JSON file. When extracting values from the image/dataset, the program uses linear interpolation to interpolate between the values of the pixels to ensure an accurate portrayal of the line drawn.

This is an open source project. For contribution guidelines please refer to the contribution section of the docs.

Installation

  1. It is recommended to first create a virtual environment before installing packages on your system to prevent package compatibility issues. From the terminal at your desired directory use:
  • For Linux and Mac: python3 -m venv nccut-venv source nccut-venv/bin/activate

  • For Windows: python -m venv nccut-venv nccut-venv\Scripts\activate

  1. Then install NcCut using PIP:

pip install nccut 3. To run the app execute the following Python code: from nccut.nccut import NcCut NcCut().run() 4. Or to execute from the command line: nccut

  • You can optionally pass in a file to be loaded as well: nccut -file file_name
  1. To exit virtual environment when finished:

deactivate

  1. To open the same virtual environment again in the future simply execute:
  • For Linux and Mac: source nccut-venv/bin/activate

  • For Windows: nccut-venv\Scripts\activate

If you are having trouble installing NcCut please refer to the Troubleshooting section of the docs

Using the App

Running the App

  1. To install the app, refer to installation instructions for your OS
  2. Execute the following python code: from nccut.nccut import NcCut NcCut().run()

Loading a File

  1. To load an image file or NetCDF file either select "Browse" to locate the file or you can type the relative or absolute file path to the file into the file entry text box and select "Load".

    • If you are loading a NetCDF file a popup window will appear with additional selections:
      • Select which variable from your file you would like to see.
      • Confirm or adjust which dimensions you would like to use as the X and Y axes for your variable.
      • If your variable has data in a third dimension select the Z dimension and an initial Z value to display. You will be able to toggle between z values later.
      • Select "Load" to load the selected data
  2. You can scroll to zoom in and out of the image and can click and drag the image to move it around.

  3. From the settings bar you can rotate or flip the image as well as change graphic settings for the tools.

  4. If you are loading a NetCDF file, from the "NetCDF" menu in the settings bar you can change which variable or z value you'd like to see as well as change the color map or contrast of the image.

    • Changing the contrast and colormap only affects the displayed image. Transect data is taken from the NetCDF file itself.

Tools

  • NcCut has two types of tools for making transects. ### Inline Chain
  • Using this tool chains of transects can be drawn. Transects will be taken along the line segments drawn between the clicked points. Multiple such Chains can be drawn out at once before being plotted. These chains can all be saved together and reloaded into the viewer later. When a large file is being explored this allows you to mark out features over multiple sessions.
  1. Hit "Inline Chain" to enter transect mode
  2. Click points along the feature you'd like to make transects along. Transects will be made between the points you click.
    • Select "Drag Mode" from the actions sidebar to drag the image without selecting points, and select "Transect Mode" to go back.
    • Select "Edit Mode" to delete either the last point clicked or the last chain drawn. You can also press the esc key to delete the last chain drawn.
  3. Right click to select the final point or select "New Chain" to begin a new chain and repeat for as many chains as you'd like.
  4. When done either select the "Export Data" button to save data or select the "Plot" button and a popup will appear with a plot of all transects from the first chain and additional exporting options.
    • If you want to continue working at a later time, select all the transects and save the data to JSON format. Refer to section below for reloading that data.

Orthogonal Chain

  • Using this tool multiple "Chains" can be drawn onto a loaded file. Transects are made orthogonally to the marked out line. These "Chains" can all be saved together and reloaded into the viewer later. When a large file is being explored this allows you to mark out features over multiple sessions.
  1. Hit the "Orthogonal Chain" button to enter transect mode
  2. Click points along the feature you'd like transects of. Dots will appear on either side of the line drawn indicating the start and end of the transects that will be made
    • Select "Drag Mode" from the actions sidebar to drag the image without selecting points, and select "Transect Mode" to go back.
    • Select "Edit Mode" to delete either the last point clicked or the last chain drawn. You can also press the esc key to delete the last chain drawn.
    • To change the width of the transects being made you may enter the number of pixels into the "Width" text box. Select "Set" to change the width for all future transects.
  3. Right click to select the final point or select "New Chain" to begin a new chain and repeat for as many chains as you'd like
  4. When done either select the "Export Data" button to save data or select the "Plot" button and a popup will appear with a plot of all transects from the first chain and additional exporting options.
    • If you want to continue working at a later time, select all the transects and save the data to JSON format. Refer to section below for reloading that data.

Loading Previously Saved Chain Data

  1. Load the same dataset/image you worked on previously.
  2. Hit the tool button of the tool you used previously to enter transect mode.
  3. Instead of clicking new points, select the "Open Data" button.
  4. Enter the file name of the transect data you saved previously from the plotting menu and select "Ok".
  5. All chains from the file will load onto the viewer and you can continue working.

For more on these tools please refer to usage section of the docs.

Owner

  • Login: rchartra
  • Kind: user

JOSS Publication

NcCut: A NetCDF Viewer and Transecting Tool
Published
February 24, 2025
Volume 10, Issue 106, Page 7185
Authors
Robin Chartrand ORCID
University of Washington, Seattle, WA, USA
Robert Fajber ORCID
Atmospheric and Oceanic Sciences, McGill University, Montréal, Québec, Canada
Georgy Manucharyan ORCID
University of Washington, Seattle, WA, USA
Editor
Hugo Ledoux ORCID
Tags
Oceanography Atmospheric Sciences NetCDF visualization GUI

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Chartrand
  given-names: Robin
  orcid: "https://orcid.org/0000-0001-6948-8380"
- family-names: Fajber
  given-names: Robert
  orcid: "https://orcid.org/0000-0002-4656-7163"
- family-names: Manucharyan
  given-names: Georgy
  orcid: "https://orcid.org/0000-0001-7959-2675"
doi: 10.5281/zenodo.14862691
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Chartrand
    given-names: Robin
    orcid: "https://orcid.org/0000-0001-6948-8380"
  - family-names: Fajber
    given-names: Robert
    orcid: "https://orcid.org/0000-0002-4656-7163"
  - family-names: Manucharyan
    given-names: Georgy
    orcid: "https://orcid.org/0000-0001-7959-2675"
  date-published: 2025-02-24
  doi: 10.21105/joss.07185
  issn: 2475-9066
  issue: 106
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 7185
  title: "NcCut: A NetCDF Viewer and Transecting Tool"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.07185"
  volume: 10
title: "NcCut: A NetCDF Viewer and Transecting Tool"

GitHub Events

Total
  • Create event: 12
  • Release event: 3
  • Issues event: 36
  • Watch event: 4
  • Delete event: 8
  • Issue comment event: 32
  • Push event: 78
  • Pull request event: 18
  • Fork event: 1
Last Year
  • Create event: 12
  • Release event: 3
  • Issues event: 36
  • Watch event: 4
  • Delete event: 8
  • Issue comment event: 32
  • Push event: 78
  • Pull request event: 18
  • Fork event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 435
  • Total Committers: 3
  • Avg Commits per committer: 145.0
  • Development Distribution Score (DDS): 0.053
Past Year
  • Commits: 138
  • Committers: 3
  • Avg Commits per committer: 46.0
  • Development Distribution Score (DDS): 0.065
Top Committers
Name Email Commits
rchartra r****a@u****u 412
github-actions[bot] 4****] 22
Hugo Ledoux h****x@t****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 36
  • Total pull requests: 22
  • Average time to close issues: 21 days
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 2.17
  • Average comments per pull request: 0.0
  • Merged pull requests: 22
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 36
  • Pull requests: 15
  • Average time to close issues: 21 days
  • Average time to close pull requests: about 4 hours
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 2.17
  • Average comments per pull request: 0.0
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Huite (19)
  • platipodium (17)
Pull Request Authors
  • rchartra (32)
  • hugoledoux (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 33 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 15
  • Total maintainers: 1
pypi.org: nccut

NcCut is a GUI for getting pixel data from images and data values from NetCDF files along linear transects.

  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 33 Last month
Rankings
Dependent packages count: 10.6%
Downloads: 12.5%
Average: 27.6%
Dependent repos count: 59.8%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/python-app.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
support/requirements.txt pypi
  • kivy *
  • matplotlib *
  • netCDF4 *
  • numpy *
  • pandas *
  • scipy *
  • xarray *