https://github.com/clima/climaanalysis.jl
An analysis library for ClimaDiagnostics (and, more generally, NetCDF files)
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
4 of 12 committers (33.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.4%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
An analysis library for ClimaDiagnostics (and, more generally, NetCDF files)
Basic Info
- Host: GitHub
- Owner: CliMA
- License: apache-2.0
- Language: Julia
- Default Branch: main
- Homepage: https://clima.github.io/ClimaAnalysis.jl/dev/
- Size: 45.2 MB
Statistics
- Stars: 11
- Watchers: 4
- Forks: 3
- Open Issues: 70
- Releases: 26
Topics
Metadata Files
README.md
ClimaAnalysis.jl
Analyzing and visualizing ClimaAtmos simulations
ClimaAnalysis.jl is a Julia library to post-process and visualize ClimaAtmos
simulations (and, more generally, NetCDF files).
Check out the documentation for more information and tutorials.
Features
- Read, organize, and process NetCDF files
- Visualize heatmaps and 1D profiles with
Makie - Visualize heatmaps on a globe with
GeoMakie - Apply averages and other reductions to the output variables
- Slice variables along a given value (e.g., take the slice with altitude of 500 meters)
- Window variables within given ranges (e.g., select times between 10 and 100 days)
- Perform mathematical operations between output variables
- Extract dimensions from conventional names (e.g.,
times) - Interpolate output variables onto arbitrary points
- Reinterpolate output variables onto pressure levels
ClimaAnalysis.jl Developer Guidelines
These guidelines aim to ensure consistent code quality, maintainability, and a
smooth collaborative workflow for ClimaAnalysis.jl. Please, read these
guidelines even if you are familiar with other CliMA packages as there may be
some differences.
Tests and environments
We prioritize well-tested code to guarantee ClimaAnalysis.jl functions
reliably. Here are some principles we follow:
Tests are collected in the test folder and are exclusively there
This means that all the tests can be run with Pkg.test().
There are no checked Manifest.toml files
While checking in Manifest.toml files ensures reproducibility, it also
introduces some nuisance, including:
- lot of git/repository noise just for "up deps";
- multiple environments that have to be managed;
- busywork to keep the manifests updated.
In this repository, we have two environments: - project, - documentation.
The project environment defines the test dependencies in its extras (to reduce
the number of environments and to avoid the "cannot merge projects" problem).
:note: Please, open an issue if you find workflow problems/friction with this system.
Running tests
ClimaAnalysis.jl defines the test dependencies directly in the main
Project.toml. This means that the package can be tested simply by running ]
test in a Julia REPL, as shown below:
Start a Julia session in the ClimaAnalysis directory:
sh
julia --project
Enter Pkg mode by typing ]. This will change the prompt. Run test.
When doing so, Julia will start a new temporary environment where the tests
are run in isolation. Tests are running checking for in-bounds and for
deprecations, and this can result in code invalidation and new precompilation.
Note, the project environment does not contain the test dependencies. Therefore,
you will find that some dependencies are missing if you try "manually" run the
test in a REPL. To solve this problem, use
TestEnv. Install TestEnv in your
base environment (julia -e 'using Pkg; Pkg.add("TestEnv")'). Then, when you
want to use the test dependencies, activate it from your REPL with using
TestEnv; TestEnv.activate(). This will bump you to an environment where the
test dependencies are available.
:note: Please, open an issue if you find workflow problems/friction with this system.
Code Formatting with JuliaFormatter.jl
One of the tests consists in checking that the code is uniformly formatted. We use JuliaFormatter.jl to achieve consistent formatting. Here's how to use it:
You can either install in your base environment with
sh
julia -e 'using Pkg; Pkg.add("JuliaFormatter")'
or use it from within the TestEnv (or base) environments (see previous section).
Then, you can format the package running:
julia
using JuliaFormatter; format(".")
or just with format(".") if the package is already imported.
The rules for formatting are defined in the .JuliaFormatter.toml.
If you are used to formatting from the command line instead of the REPL, you can
install JuliaFormatter in your base environment and call
sh
julia -e 'using JuliaFormatter; format(".")'
You could also define a shell alias
sh
alias julia_format_here="julia -e 'using JuliaFormatter; format(\".\")'"
:note: Please, open an issue if you find workflow problems/friction with this system.
Documentation
Documentation is generated with Documenter.jl. We strive to have complete and up-to-date information.
To generate documentation, run
sh
julia --project=docs docs/make.jl
Please, update the documentation if you add new features or change the behavior of existing ones.
We encourage using jldoctest to add and test examples in docstrings.
Pull Request (PR) and commits
Here's how to structure your contributions effectively:
- Descriptive Title: Briefly summarize the changes your PR introduces. Commit titles should preferably be under 50 characters, start with a capital latter, and use imperative verbs (e.g., "Remove superfluous function call").
- Detailed Description: Explain the purpose of your changes. Focus on the intent.
- Breaking Changes: If your PR introduces breaking changes, highlight them clearly in the description.
Your pull request can contain one or multiple commits. In either cases, it is important that each commit is atomic (meaning that each commit represents a single logical change).
Please, squash commits that represent a single logical change (e.g., do not have two commits when the second just fixes the first).
Pull requests are not merged, but rebased, ensuring a linear history (this is handled automatically by GitHub).
Owner
- Name: Climate Modeling Alliance
- Login: CliMA
- Kind: organization
- Email: clima@caltech.edu
- Website: https://clima.caltech.edu
- Repositories: 67
- Profile: https://github.com/CliMA
An alliance of scientists, engineers and applied mathematicians, dedicated to pioneering a new, data-informed approach to climate modeling
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Gabriele Bozzola | g****a@c****u | 152 |
| Kevin Phan | 9****v | 146 |
| dependabot[bot] | 4****] | 4 |
| AlexisRenchon | a****n@g****m | 4 |
| CompatHelper Julia | c****y@j****g | 4 |
| Jeff Yoder | j****r@u****u | 2 |
| nefrathenrici | n****i@g****m | 1 |
| imreddyTeja | t****5@g****m | 1 |
| akshaysridhar | a****r@c****u | 1 |
| LenkaNovak | 3****k | 1 |
| Julia Sloan | j****n@c****u | 1 |
| Dennis Yatunin | d****n@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 144
- Total pull requests: 285
- Average time to close issues: 12 days
- Average time to close pull requests: 4 days
- Total issue authors: 14
- Total pull request authors: 13
- Average comments per issue: 0.35
- Average comments per pull request: 1.08
- Merged pull requests: 234
- Bot issues: 0
- Bot pull requests: 19
Past Year
- Issues: 118
- Pull requests: 181
- Average time to close issues: 7 days
- Average time to close pull requests: 2 days
- Issue authors: 10
- Pull request authors: 7
- Average comments per issue: 0.14
- Average comments per pull request: 1.06
- Merged pull requests: 143
- Bot issues: 0
- Bot pull requests: 7
Top Authors
Issue Authors
- ph-kev (108)
- Sbozzolo (12)
- haakon-e (4)
- nefrathenrici (4)
- kmdeck (3)
- szy21 (3)
- AlexisRenchon (2)
- charleskawczynski (2)
- akshaysridhar (1)
- juliasloan25 (1)
- trontrytel (1)
- jty53 (1)
- imreddyTeja (1)
- JuliaTagBot (1)
Pull Request Authors
- ph-kev (141)
- Sbozzolo (95)
- github-actions[bot] (11)
- AlexisRenchon (9)
- dependabot[bot] (8)
- juliasloan25 (6)
- jty53 (4)
- akshaysridhar (2)
- dennisYatunin (2)
- LenkaNovak (2)
- imreddyTeja (2)
- nefrathenrici (2)
- haakon-e (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 98 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 26
juliahub.com: ClimaAnalysis
An analysis library for ClimaDiagnostics (and, more generally, NetCDF files)
- Homepage: https://clima.github.io/ClimaAnalysis.jl/dev/
- Documentation: https://docs.juliahub.com/General/ClimaAnalysis/stable/
- License: Apache-2.0
-
Latest release: 0.5.19
published 7 months ago
Rankings
Dependencies
- actions/cache v3 composite
- actions/checkout v4 composite
- codecov/codecov-action v3 composite
- julia-actions/julia-buildpkg latest composite
- julia-actions/julia-processcoverage latest composite
- julia-actions/julia-runtest latest composite
- julia-actions/setup-julia latest composite
- julia-actions/setup-julia latest composite
- actions/checkout v4 composite
- julia-actions/setup-julia latest composite
- JuliaRegistries/TagBot v1 composite