Recent Releases of Open Sustainable Technology Projects

dataRetrieval - v2.7.25

  • Added read_waterdata_ratings to access USGS rating curves with
    new modern endpoint.
  • Added read_waterdata_peaks to access USGS peak data with
    new modern endpoint.
  • Increase flexibility of chunking by monitoring_location_id by
    including it as an argument in each relevant waterdata OGC function.
  • Clean up deprecated code.
  • Updated retry strategy to include retry_on_failure = TRUE.
  • Added countries, methods, method-categories, method-citations, and
    citations to possible values in read_waterdata_metadata.
  • Added field_measurements_series_id argument to read_waterdata_field_measurement
  • Removed NWIS tests
  • Introduce an error if user inputs a numeric to any of the "time" arguments.
    Because it is impossible to tell if they intended Dates or POSIX, we cannot
    know for sure and therefore could add incorrect filters to the query.
  • The "id" column that comes back from read_waterdata_field_meta was changed to
    field_measurements_series_id to match the expectation of read_waterdata_field_measurements
  • New argument added to read_waterdata_stats_por: "normal_type" accepts
    "DOY" and "MOY"
  • New argument added to read_waterdata_stats_daterange: "interval_type" accepts
    "M" (month), "CY" (calendar year), and "WY" (water year).

Natural Resources - Water Supply and Quality - R
Published by ldecicco-USGS 24 days ago

cellpy - v2.1.1.post4

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.1.1.post3...v2.1.1.post4

Energy Storage - Battery - Python
Published by jepegit 24 days ago

camtrapdp - camtrapdp 0.6.0

  • camtrapdp now relies on R >= 4.1.0 and uses base pipes (|> rather than %>%) (#209).
  • camtrapdp now relies on {frictionless} >= 1.3.0 (#217).

Biosphere - Terrestrial Wildlife - R
Published by peterdesmet 24 days ago

MSC AniMet - 2.6.0

Tag release version 2.6.0

New Contributors

Full Changelog: https://github.com/ECCC-MSC/msc-animet/compare/2.5.3...2.6.0

Atmosphere - Meteorological Observation and Forecast - JavaScript
Published by kngai 24 days ago

SINDBAD - SindbadTEM-v0.1.3

SindbadTEM SindbadTEM-v0.1.3

Diff since SindbadTEM-v0.1.2

  • Add fire-disturbance process suite: cFireBurnedArea (forcing/none), cFireCombustionCompleteness (vanDerWerf2006/none), cFireMortality (vanDerWerf2004/none), and cCycleDisturbance_WROASTEDMortality linking fire mortality into carbon-cycle disturbance.
  • Add defaultVariableInfo helper for default (empty) SINDBAD variable-info dictionaries.

Merged pull requests:

  • Fuse broadcast in backScaleParameters (#73) (@felixcremer)
  • global run, manual rebase (#74) (@lazarusA)
  • Switch the runTEMYAX code to use xmap (#78) (@felixcremer)
  • include 0.10 (#82) (@lazarusA)
  • add run_lazy option to force set all relevant options to YAXArray (#85) (@dr-ko)
  • use time name from settings (#93) (@dr-ko)
  • Sk/wisp runs (#95) (@dr-ko)
  • fire models (#96) (@lazarusA)
  • Sk/build 1.10 (#97) (@dr-ko)
  • fix units in variable info (#98) (@dr-ko)
  • Sk/fallbacks (#99) (@dr-ko)
  • Sk/extensions (#100) (@dr-ko)
  • Sk/load data (#101) (@dr-ko)
  • remove deprecated use_forward_diff (#102) (@dr-ko)
  • add parameters access by name (#103) (@dr-ko)
  • bump julia version (#104) (@dr-ko)
  • minify examples to couple of setups and runs (#105) (@dr-ko)
  • CI cleanup: fix and restructure the Execution Report workflow (#106) (@dr-ko)
  • test simulations (#107) (@dr-ko)
  • Stop deploydocs from pushing PR preview builds to gh-pages (#108) (@dr-ko)
  • Sk/sanitize examples dir (#109) (@dr-ko)
  • Sk/examples stripped (#110) (@dr-ko)
  • Reduce per-push CI cost, add on-demand full-matrix/simulation checks … (#111) (@dr-ko)

Closed issues:

  • @unpack_nt should unpack all slots of NamedTuple if there not assignments. (#49)
  • Error thrown when loading a Optimizer that needs weakdep should clarify this (#65)
  • OmniTools dependency (double maintenance) (#72)
  • Fix inconsistent spelling of YAXArray in settings (#76)
  • Make lazy exe_rule which would set all relevant settings (#77)
  • move FIGlet to ext (#79)
  • move Plots to ext (#80)
  • ci for julia 1.10 is not passing (#81)
  • getVariableInfo is not returning units (#87)
  • Remove loadDataFile and replace it by YAXArrays.open_dataset (#88)
  • Support names of parameters in output of calibration (#90)
  • forcing time dimension is not recognised after the latest merge for non lazy runs (#92)

Emissions - Emission Observation and Modeling - Julia
Published by github-actions[bot] 24 days ago

PyPSA-SPICE - v2.1.0

v2.1.0 (2026-07-31)

Fixed

Changed

  • Add streamlit-extra pacakge and enhance addtional features in PyPSA-SPICE-Vis. (:material-source-pull:105 by @RichChang963)
  • Consolidate all pip package installations into the environment.yaml file and removing the previous requirements.txt file to simplifies dependency management for new users (:material-source-pull:117 by @nhlong2701)
  • Change website link display. (:material-source-pull:110 by @RichChang963)
  • Remove polyfill package to enhance website security. (:material-source-pull:113 by @RichChang963)

Notes

  • New Streamlit-extras package: We have added a streamlit-extra v1.5.0 and encourage users to upgrade their environments (using conda env update -f envs/environment.yaml --prune) to ensure full compatibility with the latest features and improvements.

Full Changelog: https://github.com/agoenergy/pypsa-spice/compare/v2.0.0...v2.1.0

Energy Systems - Energy System Modeling Frameworks - Python
Published by nhlong2701 24 days ago

EcoAssist - AddaxAI v7.0.3

Mostly a fix release for videos.

  • Videos are labelled by what is really in them. A person walking past a camera could end up filed as a chimpanzee.
  • The Labels page shows one card per video, not one per frame. A 30 second clip used to give 30 cards.
  • Label filter counts match what you can see. Picking a species no longer gives an empty screen.
  • Installed models keep themselves up to date. Corrected species lists reach you without a reinstall.
  • The Help menu links to the docs and troubleshooting pages. docs.addaxai.com is live.
  • A failed analysis says what went wrong, and offers a diagnostic report button.

Biosphere - Terrestrial Wildlife - Python
Published by PetervanLunteren 24 days ago

ibicus - v1.3.1

Small bugfixes:

  • ISIMIP debiaser: Adjusted distribution fitting to be on np.float64, added an option to manually adjust the KS goodness of fit threshold for parametric fitting and reduced the default argument to 0.15, fixing #40.
  • ISIMIP debiaser: ensured that the scaling of how many values are set to the respective upper and lower bound should be symmetric in the rare cases where more values than available in cm_future need to be set.

Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.3.0...v1.3.1

Climate Change - Climate Data Processing and Analysis - Jupyter Notebook
Published by jakobwes 24 days ago

Ecoscope - v2.17.5

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.4...v2.17.5

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] 24 days ago

Polaris - v1.0.0

What's Changed

New Contributors

Full Changelog: https://github.com/E3SM-Project/polaris/compare/0.10.0...1.0.0

Cryosphere - Sea Ice - Python
Published by xylar 24 days ago

Deadtrees.earth - v2026.07.31

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.20...v2026.07.31

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 24 days ago

GISWATER - v4.16.1

πŸ”½ Read the summarized changelog here πŸ”½

Added

  • Show hydraulic steps progress in EPA Execute dialog.

Changed

  • Improve EPA Execute cancel behavior.
  • Improve general progress display in EPA Execute dialog.

Fixed

  • Ensure QPIP dependency folder stays on sys.path when QPIP is disabled or uninstalled.
  • Fix open advanced settings dialog.
  • Update database connection handling.
  • Update condition to exclude 'MINSECTOR' in query text exploitation.
  • Comment out repeated paths check for future consideration
  • Reorder utilities icons list.
  • Fix gw_fct_linktonetwork function to add minPipeDiameter variable for massive process and adjust diameter comparison logic.

Full Changelog: https://github.com/giswater/plugin/compare/v4.16.0...v4.16.1

πŸ“ƒ Check the official documentation here: ⛓️‍πŸ’₯ Giswater Documentation

Natural Resources - Water Supply and Quality - PLpgSQL
Published by danimarinBG 24 days ago

Thermofeel - 2.3.0

  • Added a scientific validation campaign under validation/ for every method
    new in this release: per-index methodology READMEs, runnable validation
    scripts with pre-registered acceptance criteria, and versioned result tables
    and plots. Evidence includes the ISO 7730:2005 Annex D table and 58k ASHRAE
    Thermal Comfort Database II field records (PMV/PPD), NOAA SURFRAD ground
    observations and the live IFS open-data pipeline (fdir estimators), the NREL
    SPA ephemeris (Earth-Sun distance factor), and independent peer-reviewed
    implementations/transcriptions (pythermalcomfort, pvlib, BoM/Asghari forms)
    for the simple heat indices. Install pip install thermofeel[validation] to
    run; see validation/README.md for the verdict table (all PASS).
  • Added calculate_discomfort_index: Thom's Discomfort Index (Temperature-
    Humidity Index) from 2 m temperature and relative humidity, returning Kelvin.
    Implements the Celsius/relative-humidity formulation of Thom's index given by
    Giles et al. (1990, https://doi.org/10.1007/BF01093455),
    DI = T - 0.55 (1 - 0.01 RH)(T - 14.5); the index originates with Thom (1959,
    https://doi.org/10.1080/00431672.1959.9926960). Validated against analytic
    reference values (including the RH=100% -> DI=Ta and T=14.5 Β°C -> DI=14.5 Β°C
    identities) and pinned by a regression CSV. Adds a guide page. See also the
    review Epstein & Moran (2006, https://doi.org/10.2486/indhealth.44.388), which
    uses a different wet-bulb formulation.
  • Added a batch of new thermal indices (all vectorised, SI in/out, each cited
    and validated against published/independent references; see the per-index
    guide pages under docs/guide/):
    • calculate_apparent_temperature_radiation: the radiation-inclusive
      Steadman/BoM Apparent Temperature from 2 m temperature, 10 m wind, relative
      humidity and a caller-supplied body-absorbed net radiation q
      (Steadman 1994, https://doi.org/10.1071/es94001; Australian BoM).
    • calculate_relative_strain_index: the Relative Strain Index from 2 m
      temperature and relative humidity (Lee & Henschel 1966,
      https://doi.org/10.1111/j.1749-6632.1966.tb43059.x; hPa closed form and
      bands from Asghari et al. 2020, https://doi.org/10.2174/1874213002013010011).
    • calculate_summer_simmer_index: Pepi's Summer Simmer Index (common 1987
      closed form, an affine transform of Thom's THI) from 2 m temperature and
      relative humidity (Pepi 1987, https://doi.org/10.1080/00431672.1987.9933356;
      equation reproduced from secondary sources β€” see the guide).
    • calculate_pmv and calculate_ppd: Fanger's Predicted Mean Vote and
      Predicted Percentage of Dissatisfied (ISO 7730:2005; Fanger 1970), from air
      and mean-radiant temperature, body-level air velocity, humidity, metabolic
      rate and clothing insulation; validated against the ISO 7730 Annex D table.
  • Modernised the examples/ scripts and notebook to the ECMWF earthkit 1.0
    stack (earthkit-data / earthkit-meteo / earthkit-plots): compute-thermal-indices.py
    now fetches gridded ECMWF forecasts online (open data, Polytope or MARS, or a
    local file) and writes GRIB/NetCDF; compute-obs.py computes indices from
    near-real-time station METARs; the notebook draws maps with earthkit-plots.
    Removed orphaned example data files. Install with pip install thermofeel[examples].
    (Examples are not part of the shipped library.)
  • Added the thermofeel.approximations namespace (namespace-only, not
    re-exported at the top level) with estimators of the direct solar radiation
    fdir from global radiation ssrd + solar geometry, for datasets that lack
    it: approximate_fdir_erbs (Erbs et al. 1982, with an optional Earth-Sun
    distance correction) and approximate_fdir_disc (DISC; Maxwell 1987). Both
    reproduce pvlib to machine precision (validation oracle only). The
    compute-thermal-indices.py example exposes them via
    --approximate-fdir[=erbs|disc].

Consumption - Buildings and Heating - Python
Published by tlmquintino 24 days ago

Social Income - release-2026-31-07

What's Changed

New Contributors

Full Changelog: https://github.com/socialincome-san/public/compare/release-2026-22-07...release-2026-31-07

Sustainable Development - Population and Poverty - TypeScript
Published by MumenthalerManuel 24 days ago

CLEO - v0.68.1

v0.68.1 - 2026-07-31

Bug Fixes

  • missing stdexcept lib - (495d0ee) - clara.bayley
  • creation of b4 array must come before call to get_local_bounding_gridbox_index - (0db63b3) - clara.bayley
  • for adia0d - (10ed505) - Harshada Balasubramanian
  • Kokkos Abort and runtime Error - (2972088) - Harshada Balasubramanian
  • typos for debug mode - (e981a97) - Harshada Balasubramanian
  • introduce -DCMAKE_BUILD_TYPE= - (c6df85d) - Harshada Balasubramanian

Miscellaneous Chores

  • (version) v0.68.1 - (8cfdb97) - yoctoyotta1024
  • formatting and remove unused cassert lib - (b0cd77b) - clara.bayley
  • extend logic for gridbox - (6172e99) - Harshada Balasubramanian
  • wrap sdinit check inside NDEBUG macro - (ff77655) - Harshada Balasubramanian

Refactoring

  • rename BUILD_TYPE to CLEO_CMAKE_BUILD_TYPE - (f99e09b) - clara.bayley
  • use std runtime error instead of kokkos abort in cvode solver - (0c899f7) - clara.bayley
  • use DEBUG flag for more print statements - (0203003) - clara.bayley
  • pass Debug to CMAKE build as flag if CLEO_ENABLEDEBUG is true - (b23a5ff) - clara.bayley

Atmosphere - Atmospheric Chemistry and Aerosol - C++
Published by github-actions[bot] 24 days ago

ONEARMY - v2.142.3

2.142.3 (2026-07-31)

Bug Fixes

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 24 days ago

Ecoscope - v2.17.4

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.3...v2.17.4

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] 24 days ago

gbif.range - gbif.range 1.9.1

Biosphere - Biodiversity Data Access and Management - R
Published by 8Ginette8 24 days ago

frasyr - v2.6.0.1

What's Changed

Full Changelog: https://github.com/ichimomo/frasyr/compare/v2.6.0.0...v2.6.0.1

Biosphere - Marine Life and Fishery - R
Published by github-actions[bot] 24 days ago

CoastSeg - v2.0.4

Sentinel-1 (SAR) workflow update

Sentinel-1 support has been overhauled. CoastSeg now downloads both the VV and VH polarizations
instead of VH alone, and maps shorelines with a new 3-band SAR segmentation model instead of an
Otsu threshold.

Highlights

  • Sentinel-1 downloads now fetch VV and VH

    • Previously CoastSeg requested VH only, so each scene was a single band.
    • The new model needs both polarizations, so both the VV and VH are downloaded by default.
    • Action required: ROIs downloaded before this release are VH-only. Re-run the download for
      those sites and the missing band is fetched, overwriting the existing scenes in place.
  • New 3-band SAR segmentation model

    • Each scene is stacked into a [VV, VH, VV-VH] dB composite, so the model sees a much more
      detailed version of the same acquisition than a single grey band when only the VH was used.
    • VV, VH and VV-VH respond differently to water, wet sand, vegetation and urban
      surfaces.
    • The new SAR model is hosted on Hugging Face at
      2320sharon/SAR_3_band_model.
  • The new SAR 3 band model is now the default for SAR in both workflows

    • It runs in the CoastSat workflow (extract_all_shorelines) and the Zoo workflow
      (4_zoo_workflow_SAR.py and the SAR notebook) with no settings change.
    • Nothing downstream changed: the shoreline is still the land/water boundary inside the reference
      shoreline buffer, so transects, tide correction and sessions behave as before.
    • The SAR model runs in-process through onnxruntime, so unlike the other Zoo models it does
      not need the segmentation_workflow environment.
  • Otsu thresholding is now only a fallback method for SAR

    • Set sar_segmentation = "otsu" to force it, or let CoastSeg use it automatically when the model
      cannot be loaded (no onnxruntime, no internet on first use, a bad sar_model_path).
    • Otsu needs a cleanly bimodal backscatter histogram, so it drifts on wind-roughened water, wet
      sand and radar shadow, and the drift changes from date to date. Below is the same scene with the
      same settings β€” only the segmentation differs.

Getting the model

  • By default, do nothing. The model (~130 MB) is not shipped with CoastSeg. On the first SAR run
    it is downloaded from Hugging Face into a per-user cache folder outside the repository, so both
    workflows share one copy and later runs reuse it.
  • To download it manually (offline machines, restricted networks, or your own retrained model),
    get SAR_3_band_model.onnx from
    Hugging Face and save it to
    CoastSeg/models/SAR_segmentation_model/. A model in that folder always wins over the download and
    both workflows find it with no settings change.
  • To load one from anywhere else, point the workflow at it:
# CoastSat workflow: the .onnx file itself
coastsegmap.set_settings(sar_model_path=r"models/SAR_segmentation_model/SAR_3_band_model.onnx")

# Zoo workflow: the folder holding the .onnx
model_setting = {"img_type": "SAR", "local_model_path": r"models/SAR_segmentation_model"}

New settings

setting workflow default what it does
sar_segmentation CoastSat "model" "model" runs the 3-band model; "otsu" forces the legacy threshold for the whole run
sar_water_threshold both 0.5 P(water) cutoff. Raise it to classify less of the scene as water, lower it to catch more
sar_model_path CoastSat "" Your own .onnx. Stored relative to the CoastSeg folder so sessions stay portable
local_model_path Zoo "" Folder holding your own .onnx; "" uses/downloads models/SAR_segmentation_model
sar_mask_nodata Zoo True Excludes the empty parts of a SAR swath so they are not traced as land
sar_overwrite_segmentation Zoo True Re-segments scenes whose outputs already exist

sar_segmentation and sar_water_threshold have widgets on the advanced settings tab; the model
paths are set through set_settings or config.json.

Other updates

  • Every shoreline now records how it was segmented in output["segmentation_method"], and
    extracted_shoreline.report_sar_segmentation_methods(output) tallies a finished run β€” useful
    because individual scenes can fall back to Otsu even when the rest of the run used the model.
  • When comparing outputs, note that Otsu shorelines carry a dB threshold in MNDWI_threshold while
    model shorelines carry NaN. Filter with extracted_shoreline.threshold_filter_applies(output)
    rather than reading that column directly, or the model rows are silently dropped.
  • No speckle filtering is applied any more. The old workflow ran a size=15 median filter over
    the imagery before thresholding it. The SAR imagery is now left untouched β€” the model reads the raw
    dB bands and was trained that way, so smoothing them would only blur the shoreline.

What's Changed

Hydrosphere - Coastal and Reefs - Jupyter Notebook
Published by github-actions[bot] 24 days ago

PowerSimulations.jl - v0.38.1

PowerSimulations v0.38.1

Diff since v0.38.0

Merged pull requests:

  • bump dependencies (#1651) (@jd-lara)

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 25 days ago

animl-py - sdzwa_southwest_v3

Model: Southwest
Version: 3
date: 2023
num_classes: 27
Format: [.pt]

Author: Kyra Swanson
Company: San Diego Zoo Wildlife Alliance
Contact: tswanson@sdzwa.org

Description: "This model distinguishes between 27 species native to the Southwest United States. The training data was collected partially by SDZWA and the California Mountain Lion Project, and includes examples from the NACTI, and CCT training datasets. The training data corpus comprises 91,662 images. We used a 70/20/10 Train/Val/Test split. The model reached an overall accuracy of 88% on the test set."

Settings

resize_width: 299
resize_height: 299
crop: True
normalize: True

Biosphere - Terrestrial Wildlife - Python
Published by tkswanson 25 days ago

OpenDCS - 7.0.17

What's Changed

Full Changelog: https://github.com/opendcs/opendcs/compare/7.0.16...7.0.17

Hydrosphere - Ocean and Hydrology Data Access - Java
Published by MikeNeilson 25 days ago

bbsBayes2 - v.1.2026.3

Modified all of the models to increase the level of vectorization and thereby increase sampling efficiency.

Also added an argument to prepare_model() that allows the user to decrease the size of the stored model file by removing the count-level predictions. Default is to include the predictions so that posterior and prior predictions still work by default.

Added a scaling factor to the spatial models to ensure consistent interpretation of the priors for the spatial variance across any spatial graph. Following recommendations in https://doi.org/10.1016/j.sste.2018.04.002.

Also improved the internal spatial overlay processes to more accurately assign routes to spatial strata. Done in anticipation of the release of an updated route-path dataset for all US and Canada routes (expected before next annual data release).

Biosphere - Avian Monitoring and Analysis - R
Published by AdamCSmithCWS 25 days ago

EVCC - 0.313.0

Changelog

Breaking Changes 🚨

  • a3b14bb08fddb853a516bb64242121c9c3f8f845 Deye 3p hybrid: add feed-in curtailment (BC) (#32206)
  • c8b27650cac4260253ae4dab7cd09092974ab427 Home Assistant: configurable charge status values (BC) (#32136)
  • 1f0aaf14bbcde076bd54bdf86af8f4c89de303b4 Huawei SUN2000: treat two battery units as single battery (BC) (#32034)
  • 02a66252ca7112f033fd5524de9059ddf3e8b213 Modbus: unify delay and timeout settings (BC) (#31996)

New Features πŸ’«

  • c72753770289f1f5caddf8a7adc04d35c88c9db3 Add FoxESS EV charger (Modbus TCP) (#31412)
  • 0a98d57cec36fd67a5e2aa8245d179e7a1ee4676 Add SMA Sunny Home Manager 2.0 ModbusTCP with curtailment (#32091)
  • 1a058fd933d34cc5dd11fac08bf49910bf347ebd Add Shelly EM1 (#31992)
  • cd9812ef14e56a8a8c08ab5565d0b12afe20b311 Add Sigenergy EVDC charger (#32023)
  • f8cd71f70fde50a6145d1567471dae5d03483650 Add SolvisControl 2/3 heatpump (#31976)
  • 106d44652cf878a7c796ba052384e6c48cde3a3b Add THB (Thai Baht) to currency list (#32231)
  • d92f125336c2890a3b7f0b39338e652718b167e8 Afore hybrid: add grid and pv usage (#32027)
  • 4c26af7f5c77233f65b4eb15e927bc55e01fc460 HEMS: add custom implementation (#32187)
  • ce75e49192719a4cc5e8d992f2d914031acd9bd0 History: normalize tooltip units, add total row (#32262)
  • 838773b2aee651507471e1098c6cb48229103219 Home Assistant: add features config (heating/integrateddevice) (#32288)
  • af8ecb2de2b4e0f8a6c945a28c20ecb03f317f43 Huawei SUN2000: add curtailment description (#32188)
  • e6134683ac4521343fe2b4ac3ad5d5473aecf657 PowerOpti: add grid energy (#32281)
  • 435ed72a56dbb8d097dd8e9bfec705c24f2958be Revert "Add Shelly EM1 (#31992)"
  • 835d3c9c9454f3a678897a5b8face3f5574a4afc Shelly 3EM (Gen.1): add http cache, default 1s (#32216)
  • 177ca558c98a155b3e735b258029e8e467a8fe02 Site: add experimental battery grid discharge setting (#32086)
  • caf366bd345c9ef2bcdd36671aa63262e83b72bd Solaredge: add curtailment (#31982)
  • 1b16f23da3a8ed39067839a3e132a30d36a1b704 Trydan: remove Locked, pause DPC, add currents/voltages (firmware >=2.5.0) (#32013)
  • e3a48e42f97d98136fd194fab0b4a0c4d257daa1 Vehicle (VW/EU Data Act): add Skoda Enyaq soc key (#32060)
  • c9c3b3b7382fe982bd61c603b2944ea27335f838 emsesp: add cacheing (#32291)

Other Changes β˜€οΈ

  • 542a01fa20dd66638f78be33e374a9105809116a API: generate /api/state documentation from UI types (#31530)
  • 20ce660d7a2acff8326c117ed7397e456b6c2ef3 Battery: move grid discharge setting to battery page (#32256)
  • 36227559c0682b675062a45852940e4f06314a98 Chore: remove unused @claude mention workflow (#32024)
  • 608aa36629b14a419f91d6a08ca72d9160a9f012 Curtailment: report curtailed percent instead of bool (#32010)
  • b66d6532aefe9ab3b31e999cde70aba56323c0c2 E3DC: address session data request per wallbox index (#32172)
  • 6187b965ca401e2ef6f67139f3893860fb2c4c1b EEBus OHPCF: keep enabled state when enable fails (#32263)
  • 408f9a056badff4e30efc12dfe9579f7100438fe EEBus: accept an inactive Β§14a limit without a value (#32155)
  • f85b3b949851bac552a9c57e78e286431b8a7117 EEBus: treat data not valid as unavailable (#32204)
  • e871263e18072c1abdca4a585ff70f5036442c56 EEBus: update eebus-go/ship-go, drop eebus-go replace (#31980)
  • bacca990ee3519d46148fef91a4b2e5bc0b8b8fa FNN Hems: align power config wording with EEBus (productionNominalMax) (#31948)
  • 300892d1ff3cffdda0ef5055a38fbddd7f7978aa HEMS: use Wp unit for installed generator power (#32173)
  • abfce921d5b1c082c4cf897132d063b8ff7ea7d3 Huawei SUN2000: optimize timings (#32235)
  • f9dca652652bf3936283a6a093f1de14f2f2af3c Huawei SUN2000: read all ESS registers at once (#32234)
  • 1f3196b105097720a987123b465fb4bce730f6b9 Loadpoint: ignore implausible charge rater readings (#32174)
  • f8584ebb6ea338c37ea1dadd1489d84593b21fe0 Mercedes: remove broken odo, maxSoc and status (#32293)
  • 1656a76cb314d3d1c4e310632d65d67130467829 Mqtt: wait for retained message after subscribe before first read (#32031)
  • 496c834f0d7784e411e8ca9165818ed803a1f1f8 OCPP: tolerate empty chargePointVendor in BootNotification (#32184)
  • 1c26a6f66b2fc1e8b83d1107697c57f2447dd7d3 Optimizer: blend measured values into forecast inputs (#31975)
  • 43517ee105b747bd137f581c4deac72c094cc347 Optimizer: don't show outdated battery forecast (#32119)
  • de4c63d18286a7eaa822fc55f7f893fe36c0418f Optimizer: evaluate suggestion actionable flag on publish (#32045)
  • 36a789b5c0b6ccf3f15e4304281032b388c69b38 Optimizer: hide battery forecast when already full or empty (#32121)
  • 9db7be1ededad485622f4e72c5c1f9b8c8d90f88 Optimizer: notify on advisory suggestion changes (#31905)
  • 19c4e06391e992d4c87ef49e5205df8bd4b6b534 Optimizer: publish result before status check (#32055)
  • 771fc20ec2428b714f42be18c46c9c1517061946 Optimizer: split grid peak shaping into demand, feed-in and combined strategies (#32108)
  • a1b6a0630518c52f4bb057ec55c84d21727ba30f Optimizer: surface battery-to-grid discharge as suggestion (#32087)
  • 05676e7c6809ae8d66b1ff5dc8469c7ac401bf5c Remove deprecated Smart EQ (#32294)
  • 9c8852368230ba475dca77e7751660e2f78b5649 Revert "API: generate /api/state documentation from UI types" (#32109)
  • 9300e158672e315e0ae38bf44a8b93070832849b Session: fixed overflowing of cards on small screens (#32261)
  • 13aab7c6226f4dcedd2e3e34cb87ba5956adc45c Site: only re-evaluate HEMS dim and curtail state on change (#32011)
  • c8517b0237972cab66e7eb62c1ffb1c864a27b1f Tariff (Combined): sort rates before partitioning by start time (#32094)
  • aa7c685fb6e3b881ba632e79284f68346c74f40f Tariff (solar): center sub-slot interpolation on the source slot (#32116)
  • be81052667234f7aa4f3846c57a2705290ec87e6 Tariff: base cache validity on update interval instead of rate coverage (#32168)
  • 60f313cbfb75634f8d69dd63794efd89867980ab Tariff: keep fixed tariff rates ordered when chargesZones markers are combined (#32165)
  • 03a8c744d03efb0985a795cd09e882799bee48e4 UI: suppress API error toasts during restart (#32265)
  • 1db0d5015cdac481faa3137934c72169297c78f8 UI: use consistent vehicle wording in messaging events (#31938) (#32048)
  • 6ead46d97ff052cfb96e7da198ac4c14359ed82e Vaillant: solve ALTCHA challenge on login (#32070)
  • 2b7aaeaa371b3f1b3a5a297032964465d70b77fd WARP1: don't report zero phase currents on power-only meters (#32090)
  • 4e1b0a8250add1fe8d8bb34ad88a721df3a5af12 Wattsonic: remove wrong grid currents (inverter registers) (#32049)
  • 8bbbc2497dcb95b5ff725736cb7d4594e8b5e913 api: match permanent sentinel errors after backoff unwrapping (#32197)
  • 608575ffec86cbce161f07f7398ec48e0353942c core: apply dim/curtail to devices that cannot report their state (#32198)
  • 9a2a7306349990403199ff55602687eeaf700dad docs(openapi): remove stale result envelope from response schemas (#31989)
  • 19ed27fa54f52ae6b4152fd6c23c4d88d208ca87 vw/eudataact: fall back to battery care mode field for target SoC (#32242)
  • 2b69cb34129765b41970fb4d0321ffe81ac4dba2 vw/eudataact: restore welcomecharge (#32276)

Bug Fixes 🐞

  • 614c91080b952508852994316059eae1dc8d5a80 Cardata: fix mqtt channel stealing (#32244)
  • f7af0bbe6ae24a0e223adbcd548c0e76ee64259f Daheimladen: fix hardware check (#32079)
  • 5215bb9e3f44bc15a661e516a483ba582702a4b8 EEBus: fix OHPCF re-boost after the heat pump withdrew its flexibility (#32150)
  • 209b72b8179090745595048a17a51d1a14c7e026 Fix startup deadlock with existing metrics database (#32043)
  • ea6cc990945fb89b322afb69b7ca0e2215307ecc Planner: fix continuous plan selecting the current slot (#32041)
  • 834c062b8c70802d08c97624ce0d85b6e3ce435c Revert "Daheimladen: fix misleading sponsorship error on station id read (#31956)"
  • f937ebec1fb8a77f2aefc86ddb38bf1a4d511943 Shelly: fix PM1 Gen3 energy readings (#31957)
  • e867ef60cffe45215cad911d4b4aa3e7449d0491 Tariff: fix chargesZones boundaries not taking effect between price zones (#32143)
  • b178fb5c9812c510bc11b3e6192498e09e2619cc UI: fix loadpoint value alignment on narrow screens (#32275)
  • 75eebf131b61fe006195a37f8e2224dcc0846639 UI: fix missing general config tiles with battery configured (#32140)
  • f1b441684eb3aab2bb37b81b11132178e302d5df Update and fix translations (#32224)

Consumption - Mobility and Transportation - Go
Published by andig 25 days ago

Arena - v2.7.0

What's Changed

Full Changelog: https://github.com/openforis/arena/compare/v2.5.9...v2.7.0

Biosphere - Biodiversity Citizen Science - JavaScript
Published by SteRiccio 25 days ago

PortalData - 6.91.0

v6.91.0

Biosphere - Biodiversity Data Access and Management - R
Published by github-actions[bot] 25 days ago

stglib - v1.13.1

Full Changelog: https://github.com/USGS-CMG/stglib/compare/v1.13.0...v1.13.1

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by dnowacki-usgs 25 days ago

CloudMicrophysics.jl - v0.38.0

CloudMicrophysics v0.38.0

Diff since v0.37.2

Breaking changes

  • Moved out 1M options types into Microphysics1MParams
  • Renamed options to processes (breaking change)

Merged pull requests:

  • Bumping the version for a breaking release (#772) (@trontrytel)

Atmosphere - Atmospheric Chemistry and Aerosol - Julia
Published by github-actions[bot] 25 days ago

VILLASnode - v1.1.0

1.1.0 (2026-07-30)

Features

  • ci: Add a job which depends on everything (67e6c53)
  • ci: Add Github Actions workflows (9703743)
  • ci: Add new CI job for building & validating the OpenAPI spec (4993d73)
  • ci: Auto-tag a new release on successful master builds (9cae582)
  • config: Add new helper function for parsing human readable durations (c6099d4)
  • doc: Add CITATION.cff (8601b81)
  • docker: Add new Dockerimage for Rocky Linux 10 (f0c26ea)
  • Introduce Sample::PtrUnique alias (a032da0)
  • node-opal-async: Add new node-type for running VILLASnode as an Asynchronous process in OPAL-RT's RT-LAB (e978a28)
  • node-opal-orchestra: Add new OPAL-RT Orchestra node-type (95681df)
  • node-opal-orchestra: Update PATH (50a557b)
  • node-orchestra: Add first version of OpenAPI spec of node-type configuration (6560889)
  • node-orchestra: Use new parse_duration config helper for parsing duration (1e34b1e)

Bug Fixes

  • Add missing new-line to signoff commit messages (3525085)
  • ci/arx: Use nix-community/nix-bundle instead of NixOS/bundlers (0ed61be)
  • ci: Disable VILLAS_COMPILE_WARNING_AS_ERROR for debian, ubuntu and rocky (30e764f)
  • ci: Dont install dev tools in venv (e022bef)
  • ci: Fix build badges in README (d7b17ee)
  • ci: include build commands in var (fd49122)
  • ci: remove redundant build jobs (105d879)
  • clang-format: Proper formatting for libjansson macros (e29e5c2)
  • clang: Allow unkown warning options (9f1d892)
  • cmake: Cleanup and add missing feature infos (309d4e7)
  • cmake: Fix broken FindOpalOrchestra module (c162a6a)
  • cmake: Remove GetVersion module and simplify overall CMake code (93cf834)
  • compat: Add drop-in std::filesystem header for older systems (c9902cb)
  • config: Fix end-of-file (c9045c7)
  • config: Fix regular expression handling in parse_duration (bbc951f)
  • config: Fix string use-after-free (6b1da06)
  • cppcheck: Fix various cppcheck warnings and portability issues (e7c6153)
  • cppcheck: Replace string::find with string::starts_with (5606793)
  • cppcheck: Suppress dangerous type cast warning (ba6bd7f)
  • cpuset: Fix ambiguous C++20 operator== overload (4084afe)
  • deps: Adjust linker search path for OpenDSS in deps.sh (47ebd07)
  • deps: Fetch libxil from GitHub instead of old Gitlab repo (2d037d7)
  • deps: Fix detection of git-svn (0bd7861)
  • deps: Overhaul deps.sh script: (0f819de)
  • deps: Update criterion installed by deps.sh (7c38ae6)
  • devcontainer: Update location of Container image (f4b2edb)
  • doc: Add JOSS paper als new main paper about VILLASnode (51f0562)
  • doc: Add missing lab19 config (ee8423a)
  • doc: Fix broken OpenAPI spec for opal.orchestra node-type (fc38caa)
  • doc: Fix indentation and missing SPDX headers of lab19.conf (2140325)
  • doc: Fix OpenAPI doc for opal.orchestra node-type (a354a7e)
  • docker: Fix captialization (58227a3)
  • docker: Order package dependencies alphabetically (afe7011)
  • doc: Remove broken link (f5953ef)
  • doc: Remove superfluous trailing commas in example configs (94d82da)
  • docs: Added missing settings for line-based formats (5166a93)
  • docs: Tweak note about citations (b663a51)
  • examples: Remove obsolete example configurations for api node-type (00adfdd)
  • exceptions: Add missing override annotation (31c756c)
  • Fix compatability wioth GCC 8.3.0 (a05cec9)
  • Fix libfmt string formatting errors (c0ed0e8)
  • format/json_kafka: Fix json_pack string parameter (9064feb)
  • formatting: Improve json_pack readability (85281ef)
  • fpga/intc: Make IrqVectorInfo initialization more explicit (59f17a2)
  • fpga/rtds: Fix broken reinterpret_cast to virtual base class (5be0a06)
  • fpga: Replace type-punning pointer cast with std::bit_cast (77c9eff)
  • hook-frame: Fix broken digest hook integration test (2d73d5a)
  • hook-frame: Rework framing hook to synchronize frame boundaries (aa9ee64)
  • hook/lua: Remove unused lua_tojson function (6c1f12b)
  • hooks/lua: Fix forward declaration of SignalType (2435af5)
  • kernel: Mark ~Driver interface destructor as virtual (4686d23)
  • linux: Reintroduce patch for struct groups (2bb445e)
  • memory: Fix non-virtual destructor in polymorphic class (c480970)
  • nix: Add some missing build inputs (cbf57bb)
  • nix: Only build with orchestra on x86_64-linux (54d8fb3)
  • nix: Remove nix-ld env vars which break dev shell with Lix (430c533)
  • nix: Use common directory for all patches (2831c2f)
  • node-example: Remove header for example node-type (46e893d)
  • node-opal-async: Fix compilation errors (bec6af1)
  • node-opal-orchestra: Add comment to global lock (49e2c29)
  • node-opal-orchestra: Do not hide node-type (1aca74b)
  • node-opal-orchestra: Fix include order (66d612a)
  • node-opal-orchestra: Fix typo in example config (6a2151d)
  • node-opal-orchestra: Fix whitespaces (f895c44)
  • node-opal-orchestra: Improve readability (37f320f)
  • node-opal-orchestra: Rename source files (deb4d13)
  • node-opal-orchestra: Rework Item::upsertItem using std::string_view (56f4a6b)
  • node-opal-orchestra: Rework Nix build (38dc435)
  • node-opal-orchestra: Use shared pointers for DDF items (864c09d)
  • node-opal-orchestra: Use snake_case for options (1e5861e)
  • node-opal-orchestra: Use std::optional instead of negative value for absent indices (5da3ba5)
  • node-opal-orchstra: Use our fs namespace for compatability with std::filesystem drop-in (4ec829d)
  • node-orchestra: Fix consteval error in RTError (b08d41a)
  • nodes/fpga: Fix cppcheck warning (9f04289)
  • nodes/iec61850_goose: Add checks that signals wanted in publisher exist (ce9b0bd)
  • nodes/iec61850_goose: Add nullptr check when creating GOOSE publisher (98c5a96)
  • nodes/iec61850_goose: Add whitespaces in check that signals wanted in publisher exist (4920d5d)
  • nodes/iec61850_goose: Create publishers if only output section exists (e93347f)
  • opal_orchestra: Remove <filesystem> include (1cf9be3)
  • opal-async-param: Close header comment (0c430e8)
  • opal/ddf: Fix non-virtual destructor in polymorphic class (e6d2588)
  • packaging/deps: Use fixed pip version instead of latest (942740c)
  • packaging: Fix repo location in Arch PKGBUILD file (2e98e32)
  • packaging: Update outdated LABELs (b4e4b5c)
  • protobuf: Update auto-generated code (203fb99)
  • python: change isinstance int/bool order (01344f2)
  • python: Fix mypy CI checks (545e4ba)
  • python: Fix mypy error (3a45c59)
  • python: Fix whitespaces (1af30af)
  • reuse: Add missing REUSE header to CITATION.cff (91ef3ed)
  • reuse: Remove unused license (d5e8e16)
  • sample: Comparison of sample flags (c137b31)
  • sample: Remove C compatability macros (dcecdf2)
  • style: Fix whitespaces (d70c7da)
  • style: Format code with clang-format (186e880)
  • style: Make comments start with uppercase letter in Nix files (03f03d4)
  • style: Replace std::map by std::unordered map where possible (b532ad3)
  • style: Run clang-format (8784479)
  • style: Use move semantics to pass std::strings (d835b8b)
  • tests/config: Remove broken putenv call (7a489a0)
  • tests/format: Use proper printf formatting specifiers for std::int64_t (1605e9f)
  • tests/queue: Fix unintentional sleep(0) using usleep (5215a8f)
  • tests/utils: Fix string use-after-free (b5ecbea)
  • tests: Exclude opal.orchestra config from test-config (af39abb)
  • tests: use C locale for integration tests (0388e0e)
  • tools: Fix artifact locations for villas-install script (81152f0)
  • treewide: Fix virtual/override annotations (a960050)
  • Use always en_US locale (aae084e)
  • Use native PEP-420 namespace package (db372c7)
  • vfio_device: Make IrqVectorInfo initialization more explicit (8851cb5)
  • vfio_device: Remove unused pci_device pointer (ae1d7be)
  • villas-graph: Pass correct type to gvRenderData (089d772)
  • villas-pipe: Allocate at least 16 samples (f4538b2)
  • web: Conditionally add global extensions array (71d55f0)
  • webrtc: Fix link to static logo asset (3c72575)
  • webrtc: Fix use of deleted default constructor of sample_pool (34db23c)
  • wrong config name in ignored configs (a0fff22)

Energy Systems - Grid Management and Microgrid - C++
Published by github-actions[bot] 25 days ago

cellpy - v2.1.1.post3

Post-release of 2.1.1 β€” silence loader-discovery WARNING spam for apps.

  • list_instruments() is quiet by contract: expected loader-probe skips log at DEBUG; the scan uses create_all(quiet=True) so apps no longer see WARNING:root: Could not create loader … on every call. (#786)

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.1.1.post2...v2.1.1.post3

Energy Storage - Battery - Python
Published by cursor[bot] 25 days ago

CloudMicrophysics.jl - v0.37.2

CloudMicrophysics v0.37.2

Diff since v0.37.1

  • Move parameters out 1M options types into Microphysics1MParams

Merged pull requests:

  • chore(deps): bump the all-julia-packages group across 1 directory with 2 updates (#723) (@dependabot[bot])
  • Move parameters out 1M options types into Microphysics1MParams (#767) (@nefrathenrici)

Atmosphere - Atmospheric Chemistry and Aerosol - Julia
Published by github-actions[bot] 25 days ago

Farmbot - v15.30.0

v15.30.0

Consumption - Agriculture and Nutrition - TypeScript
Published by gabrielburnworth 25 days ago

REopt_API - New deployment process, PostgreSQL 16, keys.py -> .env

What's Changed

Full Changelog: https://github.com/NatLabRockies/REopt_API/compare/v3.19.1...v3.20.0

Energy Systems - Energy System Modeling Frameworks - Python
Published by Bill-Becker 25 days ago

Zarr - v3.3.0

What's Changed

New Contributors

Full Changelog: https://github.com/zarr-developers/zarr-python/compare/v3.2.1...v3.3.0

Climate Change - Climate Data Standards - Python
Published by d-v-b 25 days ago

Earth2Studio - v0.17.0

Earth2Studio general release 0.17.0

🚨 Breaking Changes 🚨

  • NNJA and GDAS data sources had breaking behavior and constructor API changes to help with consistency between them.

πŸ“• Changelog

🌎 Added

  • Added GHCN hourly data source (GHCNHourly), superseding the deprecated ISD source
  • Added EarthMover ERA5 0.25 degree reanalysis data source
  • Added EarthMover IFS 0.1 degree data source and forecast source hosted by BrightBand
  • Added async_workers and retries parameters to GFS / GFS_FX, HRRR / HRRR_FX,
    GEFS_FX / GEFS_FX_721x1440, CFS_FX / CFS_FX_Flux and NCAR_ERA5 data sources
  • Added shared obstore byte-range helpers (obstore_store_from_url,
    obstore_read_range, obstore_fetch_to_cache) in earth2studio.data.utils
  • Added dynamical.org analysis and forecast data sources, reading anonymous Icechunk
    repositories: DynamicalAIFS, DynamicalAIFS_ENS, DynamicalGFS, DynamicalGEFS,
    DynamicalHRRR, DynamicalMRMS, DynamicalGFS_FX, DynamicalGEFS_FX,
    DynamicalHRRR_FX, DynamicalICON_EU_FX, DynamicalIFS_ENS,
    DynamicalIFS_ENS_FX,
    DynamicalAIFS_FX and DynamicalAIFSENS_FX.
  • Added Aurora v1.5 deterministic and ensemble model wrapper (Aurora1p5, Aurora1p5Ensemble)
  • Added StormCast CONUS prognostic model (StormCastCONUS)
  • Added DataReplay for replaying DataSource and ForecastSource data through the
    prognostic iterator interface.
  • Added NNJA satellite observation data frame source (NNJAObsSat)
  • Added StormScope NSRDB solar irradiance (GHI) estimation model (StormScopeDxNSRDB)
  • Added COSMO-REA downscaling diagnostic model (CorrDiffCosmoEra5) for diffusion downscaling
    of ERA5 to COSMO-REA6 (6 km) and COSMO-REA2 (2.2 km) over Europe.

βš™οΈ Changed

  • Renamed GHCNLexicon to GHCNDailyLexicon for consistency with the new hourly lexicon
  • Updated MeteosatFCI reader and lexicon to include all channels.
  • Updated StormScope model package to use improved higher resolution checkpoints. Model
    now defaults to using 3 km and 10 minute spatiotemporal resolution, and includes
    predictions for GOES GLM Lightning density.
  • Migrated GFS / GFS_FX data sources from s3fs to obstore for index and byte-range
    GRIB fetches; downloads now use bounded concurrency with retry on transient errors
  • Migrated the remaining GRIB byte-range data sources (HRRR / HRRR_FX, GEFS_FX /
    GEFS_FX_721x1440, CFS_FX / CFS_FX_Flux, NCAR_ERA5) from s3fs/gcsfs to obstore with
    bounded concurrency and retry on transient errors
  • Migrated HTTP-backed GRIB sources (GFS ncep, HRRR nomads, CFS nomads) to
    obstore HTTPStore against the NOMADS HTTPS endpoint (GFS ncep previously used
    FTP); no fsspec fallbacks remain in the GRIB byte-range sources
  • Refactored UFS observation sources (UFSObsConv, UFSObsSat) onto the shared
    obstore byte-range helpers
  • Zarr-reading data sources (ARCO, WB2ERA5 and other WeatherBench 2 sources, and
    the rx prescriptive sources) now read via obstore-backed zarr stores instead of
    fsspec
  • UFS observation sources (UFSObsConv, UFSObsSat) now tolerate missing diag files
    by warning and skipping instead of erroring
  • Updated the OPERA data source to represent undetect values as -99.0, while
    retaining NaN for no-data values.
  • NNJA Obs data source now accepts any time / tolerance rather than 6-hour strides
  • Renamed NomadsGDASObsConv max_workers parameter to async_workers for
    consistency with other observation data sources

πŸ”¨ Fixed

  • Fixed PrecipitationAFNOv2 and WindgustAFNO passing latitude and longitude in
    swapped order to cos_zenith_angle, which produced an incorrect solar-zenith-angle
    input channel.
  • Fixed incorrect interpolation values at the lower grid edge when an output
    coordinate matched the first input coordinate.
  • Corrected the PrecipitationAFNOv2 docstring: the model predicts precipitation
    accumulated over the following six hours [t, t+6h], not the prior six hours.
  • Fixed DerivedRH mixed-phase saturation blend clipping the liquid-water fraction
    ratio to 1.2 instead of 1.0 before squaring, which let the effective weight reach
    1.44 and inflated relative humidity above freezing.
  • Changed ISD schema source type to string since the field is alphanumeric. Enforced
    float32 dtypes for lat, lon, elev, and observation.
  • Fixed NNJA observation sources blocking the shared fsspec IO loop with
    CPU-bound PrepBUFR decode work, which stalled concurrent fetches from other
    data sources.
  • Fixed ACE2 distributed inference failures caused by nondeterministic variable ordering
    across MPI ranks.
  • Improved ACE2ERA5 inference performance by caching yearly forcing values
  • Fixed ACE2ERA5 forcing data retrieval for static variables requested across
    multiple times.
  • Added CF-convention scale/offset when retrieving JPSS data.

πŸ“¦ Dependencies

  • Removed multi-storage-client from the data optional dependency group,
    succeeded by obstore
  • Added icechunk>=2.0.0 to the data optional dependency group (Python β‰₯3.12 only)

Special thank you to our external contributors:

Climate Change - Earth and Climate Modeling - Python
Published by NickGeneva 25 days ago

metloom - metloom v0.10.0

  • Homogenize radiation variable names
  • Fix snowcourse dates in NRCS client

Atmosphere - Meteorological Observation and Forecast - Python
Published by micah-prime 25 days ago

CLEO - v0.68.0

v0.68.0 - 2026-07-30

Bug Fixes

  • errors in rebase conflicts corrected - (cf9a67d) - clara.bayley

Features

  • collisions struct can take a fixed seed for the random number generator pool - (5d005a2) - clara.bayley
  • configuration allows option fixed seed for collisions - (de0cb18) - clara.bayley

Miscellaneous Chores

  • (version) v0.68.0 - (b7ac541) - yoctoyotta1024
  • comment out seed in roughpaper - (7b4c2bd) - clara.bayley
  • formatting - (ad633ea) - clara.bayley
  • formatting - (1901abf) - clara.bayley

Refactoring

  • add clearer note on seed in configs - (0406ed3) - clara.bayley
  • show example with fixed seed in roughpaper - (5c9627e) - clara.bayley
  • use fixed seed for golovin kernel in shima2009 example - (f11160a) - clara.bayley

Atmosphere - Atmospheric Chemistry and Aerosol - C++
Published by github-actions[bot] 25 days ago

OasisLMF - Release 2.5.6

OasisLMF Changelog - 2.5.6

  • #2048 - Add linear interpolation lookup for correlation functions
  • #2051 - enhance/supported_oed_versions
  • #2052 - enhance/pytools converters dtypes
  • #2054 - upgrade cibuildwheels
  • #2056 - fix(il): IL outputs non-deterministic when account rows are reordered (#2040)
  • #2057 - Extent api client CLI options
  • #2061 - Add py3.14 to binary package builds
  • #2071 - Fixes for small issues
  • #2072 - split get_il_input_items
  • #2074 - Switch CI to using UV, replacement for pip-tools

OasisLMF Notes

enhance/supported_oed_versions - (PR #2051)

Delegate supported_oed_versions conversion to OedExposure

Removes the to_version call from GenerateKeys.run() and forwards supported_oed_versions (from model_settings.data_settings) and disable_oed_version_update through get_exposure_data_config() on all computation step entry points. Conversion now happens inside OedExposure.__init__() (ODS_Tools #286), covering all construction paths uniformly.

Updated 3 tests to assert on config forwarding rather than to_version mock calls.

closes https://github.com/OasisLMF/ODS_Tools/issues/230

Support configurable (environment-driven) dtypes across pytools converters

Summary

The pytools binary/CSV converters and event-stream writers previously hard-coded int32/float32 for stream fields (event_id, item_id, sidx, loss, etc.). This branch propagates the configurable dtypes (oasis_int, oasis_float, areaperil_int, driven by the OASIS_INT / OASIS_FLOAT / OASIS_AREAPERIL_TYPE environment variables) through the entire conversion path, so round-trips stay correct when non-default types are configured.

Main changes

Core type handling (common/data.py, common/event_stream.py)

  • Add def_to_type_and_size() helper to resolve a field definition to its (np.dtype, itemsize).
  • Derive loss_pair_dtype, item_header_dtype, and summary_stream_index_dtype from the configurable field definitions instead of fixed types.
  • Split the numba stream writers (mv_write_item_header, mv_write_sidx_loss) into public wrappers + *_cached implementations that take type/size info as arguments, so numba caching stays valid when dtypes change.
  • Fix an incorrect section_id header name (was mislabelled scale2).

Converters (csvtobin & bintocsv )

  • Replace hard-coded int32/float32 reads/writes and chunk-size math with dtype-derived sizes and the shared write helpers.
  • Fix GUL/FM cache-write and delimiter handling, fm csvtobin, the bintocsv fm.py read buffer, and abstract the vulnerability header size.

getmodel & fm (getmodel/common.py, footprint.py, manager.py, vulnerability.py, fm/compare.py, footprintconv.py)

  • Use numpy dtypes for FootprintHeader, fix a circular import, correct footprint/vulnerability type usage, and fix the loss type in fm/compare.py.

Tests

  • New test_converters_env.py: runs conversions in a subprocess under adjusted dtype environments and verifies both output equivalence and the serialized dtypes.
  • Add envdtype test assets (items, vulnerability, weights, fm_profile, gul/ils, coverages, damagebin) and refactor the existing converter tests to run as class methods.

upgrades cibuildwheels - (PR #2054)

New subcommands

oasislmf api post

Upload files to the platform.

  • --portfolio-id / --portfolio-name + --oed-location-csv / --oed-accounts-csv / --oed-info-csv / --oed-scope-csv / --currency-conversion-json / --reporting-currency β€” uploads to a portfolio; omitting --portfolio-id creates a new one.
  • --analyses-id + --analyses-settings-json β€” uploads analysis settings (requires --analyses-id).
  • --model-id + --model-settings-json β€” uploads model settings (requires --model-id).
  • Errors if nothing is given to upload.

oasislmf api validate

Validate a portfolio's OED exposure files.

  • --portfolio-id (required).
  • Default behaviour: triggers a new validation run and polls until it completes, then returns the detailed result.
  • --get-status β€” skip triggering/polling, just return the current status snapshot.
  • --poll-interval (default 5s).

oasislmf api exposure-run

Runs oasislmf exposure run server-side against a portfolio (mirrors oasislmf exposure run -h flags: -a/--kernel-alloc-rule-il, -A/--kernel-alloc-rule-ri, --model-perils-covered, -l/--loss-factor, --supported-oed-coverage-types, --extra-summary-cols, --fmpy-low-memory, --fmpy-sort-output, --check-oed, --do-disaggregation).

  • --portfolio-id (required), -o/--output-dir for the downloaded result.
  • Default: triggers a run, polls to completion, downloads the result file.
  • --fetch β€” skip triggering, just download the last result.
  • --poll-interval (default 5s).

oasislmf api exposure-transform

Converts a portfolio's exposure data between OED and AIR.

  • --portfolio-id, --file-type (location/accounts/ri_info/ri_scope), --mapping-file, --transform-file (all required).
  • Triggers the transform and polls until complete, then returns the updated portfolio object.
  • --poll-interval (default 5s).

oasislmf api combine

Combines the ORD output of multiple RUN_COMPLETED analyses.

  • --analysis-ids (required, list), --combine-settings-json (required), --combine-name (default combine-analysis).
  • Fire-and-forget β€” returns the immediate API response, no polling.

oasislmf api cancel

Cancels an in-flight analysis (input generation or run, whichever is active).

  • --analysis-id (required).

oasislmf api sub-tasks

Lists the sub-tasks of an analysis run.

  • --analysis-id (required).

oasislmf api reconnect

Reconnect to an in-progress analysis and resume polling for status

  • --analysis-id (required).

oasislmf api plot

Plot a Gantt chart of an analysis's sub-tasks, with a status summary

Changes to existing subcommands

oasislmf api list

  • Added -t/--subtask <id...> β€” print task-status details fing -m/--models, -p/--portfolios, -a/--analyses).

oasislmf api get

  • Added --subtask-output-log, --subtask-error-log, --subtask-retry-log <id...> β€” download task-status logs, following the same <id...> list pattern as the existing model/portfolio/analyses download fl

Add py3.14 to binary package builds - (PR #2061)

  • Build binary packages for Py3.14

Switch CI to using UV, replacement for pip-tools - (PR #2074)

Swtich to https://github.com/astral-sh/uv instead of pip-tools due to https://github.com/OasisLMF/OasisLMF/issues/2070 uv seems faster and shouldn't have dependency issues.

Climate Change - Natural Hazard and Storms - Python
Published by awsbuild 25 days ago

MARIO - v1.1.1

MARIO v1.1.1

This bugfix release rebuilds the GTAP Power MRIO parser around a record-based
assembly engine shared by the CSV and GDX backends, fixing crashes and silent
data losses on recent GTAP exports, and adds an opt-in structured row layout
for the GTAP factor and satellite blocks.

GTAP parser rewrite

  • The parser now maps every record onto integer axis positions and accumulates
    values directly into dense blocks, so the build cost scales with the number
    of records instead of the size of the cartesian label space. A full GTAP
    2023 Power MRIO CSV bundle (~7 GB, ~140M records) parses end-to-end in
    about 80–90 seconds, where the previous implementation ran for 20+ minutes
    before failing.
  • CSV reading prefers the multithreaded pyarrow engine (with a silent
    fallback to the default engine) and logs per-file and per-block progress.

Fixes

  • Duplicated record keys no longer crash the CSV path. Recent GTAP CSV
    exports flatten several GDX symbols into one file (e.g. combustion and
    non-combustion emissions), so the same key can legitimately appear more than
    once: duplicated keys are now summed instead of raising
    ValueError: cannot handle a non-unique multi-index.
  • Output- and value-added-based emission accounts are captured. The CSV
    export encodes them with the SRC="TOT" placeholder; they were silently
    dropped β€” about one third of the emission record mass in the GTAP 2023
    bundle β€” and now land in the domestic satellite rows of the destination
    region (e.g. EMI_CH4_dms_QO), mirroring how the GDX bundles store them.
  • No more spurious EMI_0_* satellite rows produced by the fill step of
    the previous CSV implementation (which also raised a TypeError on the
    pandas 3 string dtype).
  • E and EY expose one dense, aligned satellite row set on both
    backends, instead of the data-dependent asymmetric row sets of the previous
    CSV path.
  • Any satellite record mass the parser cannot attribute is now reported with a
    parser warning instead of being silently dropped.

New: optional structured row layouts for GTAP

  • parse_gtap gained an opt-in matrix_layouts argument:

    db = mario.parse_gtap(
        path="path/to/bundle",
        input_format="auto",
        matrix_layouts={"V": ("Region", "Sector"), "E": ("Region", "Sector")},
    )
    

    Factor and satellite rows are exposed as a semantic
    (Region, Sector, item) MultiIndex instead of the historical flat string
    names (MTAX_AUS_GRO becomes ("AUS", "GRO", "MTAX")), and the matching
    block specifications are registered on the database. Values are identical to
    the flat parse β€” only the index representation changes.

  • Row families without a region or sector of their own (PTAX, VAAD/VTAX
    endowments, ETAX, DTAX/ITAX, domestic satellite accounts) carry the
    "TOTAL" sentinel on the levels that do not apply. The sentinel is not
    part of the Region/Sector sets and passes through aggregation untouched, so
    no extra entry is needed in aggregation mapping files.

  • The default (matrix_layouts=None) keeps the historical flat rows, so
    existing workflows are unaffected.

Notes

  • The GDX backend requires the GAMS Python API; the pip package
    gamsapi[transfer] is sufficient to read GDX bundles.
  • GTAP databases parsed with earlier MARIO versions differ from v1.1.1 output
    by design: the emission block now includes the previously dropped output-
    and value-added-based accounts, and E/EY share one aligned row set.

Compatibility

  • Requires Python 3.11–3.13.
  • No API breaking changes since v1.1.0; the matrix_layouts argument is
    additive and off by default.

Full changelog: https://github.com/it-is-me-mario/MARIO/compare/v1.1.0...v1.1.1

Industrial Ecology - Input Output Model - Python
Published by LorenzoRinaldi 25 days ago

PowerSystems.jl - v5.12.1

PowerSystems v5.12.1

Diff since v5.12.0

Merged pull requests:

  • transformer refactor (#1714) (@m-bossart)
  • add missing fields to structs (#1716) (@jd-lara)
  • parse multi swing cases (#1720) (@jd-lara)
  • Fix docs race condition: add concurrency group to docs workflow (#1722) (@Copilot)
  • remove last pieces of stateful units system (#1724) (@luke-kiernan)
  • Make InterconnectingConverter DC current unit-aware (power-equivalent on base_power) (#1727) (@jd-lara)
  • Broaden _set_value's Float64 restriction to Real (fixes #1721) (#1729) (@luke-kiernan)
  • fix substation "NODES" failure (#1732) (@m-bossart)
  • Mb/dgen bug (#1733) (@m-bossart)
  • Jd/restore codecov (#1736) (@jd-lara)

Closed issues:

  • Discrepancy between pretty print and getter functions of unattached components (#1128)
  • Solve the Units Issue Once and For All (#1134)
  • Support More Time Variance in Cost Parameters (#1150)
  • Review start "cost" data (#1208)
  • Overhaul time variant cost functions (#1244)
  • Add WindingData struct that contains active_power, reactive_power, r, x, and all the other fields that exist for each of the three windings so that we can just have three WindingData instances rather than duplicating all these fields? (#1271)
  • Data Gaps for interoperability (#1683)
  • [Copilot] Fix documentation build failure (64a4486) (#1719)
  • _set_value's Float64 limitation and multiple dispatch (#1721)
  • Parsing distributed generation doesn't account for DGENM (distributed generation status) (#1731)

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 25 days ago

GasModels.jl - GasModels v0.13.4

Release Notes

  • Bug Fix: correct sign error in transfer prices (by @hskkanth )
  • Merge ogf and ogf_comp_power_unc (by @rb004f )
  • Improve multinetwork constraint building (by @rb004f )

Breaking Changes

  • None

Energy Storage - Hydrogen - Julia
Published by skylerreid 25 days ago

REHO - v2.0.0

Type Category Title Description Breaking
![Changed][changed] Global Packages migration Dropped support for pandas 1.x and 2.x; REHO now requires pandas>=3.0.0. Code relying on pre-3.0 pandas semantics (e.g. implicit downcasting, DataFrame.append, old groupby/resample defaults) will need to be updated before upgrading. πŸ”΄
![Changed][changed] Global Packages migration Dropped support for SQLAlchemy 1.x; REHO now requires sqlalchemy>=2.0.0. Any custom code building queries against QBuildingsReader.tables using the 1.x select([...]) style must be updated to the 2.0 select(...) API. πŸ”΄
![Changed][changed] Global Packages migration Raised the minimum Python version from 3.9 to 3.11. Python 3.9 and 3.10 are no longer supported. πŸ”΄
![Changed][changed] Global Packages migration Unpinned numpy (<2.0.0) and geopandas (<1.0.0). Environments now resolve to numpy 2.x / geopandas 1.x by default; code depending on numpy 1.x or geopandas <1.0 behavior may break. πŸ”΄
![Fixed][fixed] Scripts Packages migration Various fixes to example scripts and the test runner for pandas 3.0. 🟒
![Changed][changed] ![Preprocessing][preprocessing] QBuildings access QBuildingsReader.read_db selection API changed:1. Buildings are now selected through a single filters dictionary, e.g. read_db({'transformers': 234}), read_db({'egid': 1009515}), read_db({'geometry': 'boundary.gpkg'}).2. Filters combine with a logical AND, so a transformer and an EGID can be given together.3. The district_boundary, district_id, egid, and id_building keyword arguments are deprecated in favor of filters; they now raise a DeprecationWarning and will be removed in a future release. 🟠
![Added][added] ![Preprocessing][preprocessing] QBuildings access QBuildingsReader.read_db can now select buildings by id_building, and by an arbitrary geometry (a file path, WKT string, shapely geometry, or (Geo)DataFrame) via spatial intersection. 🟒
![Added][added] ![Plotting][plotting] Profiles Adding of a plot_combined_profiles that allows to combine different type of profiles to be mixed together, typically one by season. 🟒
![Fixed][fixed] ![Plotting][plotting] Plot fixes Correction in plot_eud and plot_paretoand plot_pareto_by_objectives. 🟒
![Added][added] ![Preprocessing][preprocessing] Reference scenario If the scenario name is reference, it activates a function where we build REHO with the units configuration (heating + dhw system and installed PVs) retrieved from QBuildings. 🟒
![Changed][changed] ![Preprocessing][preprocessing] Solar gains Change of re-calibration of solar gains and Uh when ERA < Footprint. 🟒
![Changed][changed] ![Postprocessing][postprocessing] Sensitivity analysis Add an option to do the sensitivity analysis in the buildings data as well as prices. 🟠

Migration notes

  • If you pin REHO<2.0 (once released) in your own project, your existing pandas 1.x/2.x and
    SQLAlchemy 1.x environment will keep working. Upgrading to REHO>=2.0 requires upgrading
    pandas and SQLAlchemy alongside it β€” there is no dual-support release.
  • Replace reader.read_db(district_id=234, egid=[...]) with
    reader.read_db({'transformers': 234, 'egid': [...]}). The deprecated keyword form still works
    but now raises a DeprecationWarning and will be removed later.

Energy Systems - Renewable Energy Integration - Python
Published by github-actions[bot] 25 days ago

pvcaptest - v0.17.0

A large release centered on making the filter pipeline a first-class, serializable
object and on CapTest owning the whole test lifecycle. It contains a number of
breaking changes β€” see below before upgrading.

Highlights

  • Filters are first-class step classes. The new captest.filters module holds
    Irradiance, Sensors, Time, Outliers, Clearsky, RepCond, and the rest.
    Each declares typed param parameters, so a step can be built and run directly
    (Irradiance(low=200, high=800).run(cd)), inspected, reordered, and replayed.
    CapData.filters_to_config() / run_pipeline(config) serialize and replay a
    chain, and CapTest.to_yaml / from_yaml round-trip both pipelines in one file.
  • CapTest.run_test() β€” one call to go from a config to results: setup β†’
    pipeline replay β†’ fit β†’ reporting-condition verification β†’ CapTestResults.
    Runs one side at a time with side='meas'|'sim', and reload(side, path=...)
    re-loads a side and re-applies its chain against fresh data.
  • New data prep stage between load and setup(). Unit conversions, scaling,
    dtype casts, column drops and renames are declared, serialized, and replayed
    after every load β€” prep_convert_units, prep_scale, prep_astype,
    prep_custom, plus CapTest.meas_prep / sim_prep in the yaml config. See the
    new "Preparing Data" user guide page.
  • CapTest.rc is the single owner of reporting conditions, settable for manual
    override and populated automatically by rep_cond, with staleness warnings when
    an RC-changing write invalidates already-applied ref_val='rep_irr' steps.
  • Structured results. captest_results() returns a CapTestResults object
    (cap ratio, pass/fail and bounds, expected/actual/tested capacity, per-side
    points and regression tables, RC provenance) instead of a bare float.
  • New filters: filter_backtracking (removes single-axis-tracker backtracking
    intervals from solar position and tracker geometry), filter_rolling_std,
    filter_abs_diff_prev, filter_flag, filter_threshold, and
    filter_sensors_abs_diff.
  • Automatic year-end wrapping via CapTest.auto_wrap_sim (default True) β€”
    a measured test within 60 days of a calendar-year boundary now aligns the
    simulated data automatically, replacing the manual filter_time(wrap_year=True).
  • Reporting and introspection: describe_filters() for a written summary of a
    filtering run, rerun_filters_from(index) for a partial pipeline re-run, and
    full state-transaction rollback so a failing step leaves the pipeline and RC
    state unchanged.

Breaking changes

  • Loading a config no longer applies its filters. from_yaml / from_mapping
    store pipelines as meas_filters_pending / sim_filters_pending; run_test()
    runs them. A freshly loaded test holds unfiltered data for review, and
    from_yaml(path).run_test() executes each pipeline exactly once. With a computed
    rc_source, ct.rc is None until the filters run.
  • rep_cond_source is renamed rc_source. Configs written by v0.16.0 will not
    load β€” from_yaml raises ValueError: Unknown key 'rep_cond_source' ... β€” so
    rename the key in saved configs and in any code passing it.
  • Filter step classes dropped the Filter prefix and the terse names were
    expanded (FilterIrr β†’ Irradiance, FilterPf β†’ PowerFactor). YAML pipeline
    configs written with the old type strings must be regenerated.
  • CapData.data_filtered is now a derived, read-only property over the filter
    chain. It has no setter; clear filtering with reset_filter().
  • The inplace keyword is gone from all filter_* methods and
    fit_regression β€” filters always act in place and record a step.
  • filter_sensors comparison is unified: perc_diff β†’ thresholds, plus
    method='percent_diff'|'abs_diff' or a callable; row_filter is removed.
  • filter_time(wrap_year=True) is removed β€” use auto_wrap_sim (see above).
  • perf_ratio_temp_corr_nrel(single_irr_weighted_temp=...) is removed; it could
    never change the reported PR once the correction was applied correctly.
  • The module-level capdata.run_test(cd, steps) is removed β€” the name is now
    CapTest.run_test(). Filter steps also reject assignment to unknown attribute
    names, raising AttributeError with a close-match suggestion.

Notable fixes

  • perf_ratio_temp_corr_nrel now multiplies the DC nameplate by the temperature
    correction factor instead of dividing by it
    , matching NREL/TP-5200-57991. The
    division inverted the correction, biasing PR low for hot conditions and high for
    cold. PR values computed with this function will change.
  • Remote URIs (s3://...) and Path / UPath objects now work for every loader
    path argument, not just load_data(path=...).
  • import captest no longer fails in a minimal install with
    AttributeError: module 'importlib' has no attribute 'util'.
  • ReportingIrradiance.plot no longer raises KeyError on a NaN reporting
    irradiance arriving as a numpy.float64.

Full details, including the docs and tooling changes, are in the
changelog.

Full Changelog: https://github.com/pvcaptest/pvcaptest/compare/v0.16.0...v0.17.0

Renewable Energy - Photovoltaics and Solar Energy - Python
Published by bt- 25 days ago

cellpy - cellpy 2.1.1.post2

Post-release of v2.1.1 β€” collected summary facet y-axis controls for apps. Safe drop-in over 2.1.1 / 2.1.1.post1.

  • Per-panel y-limits (and clearer share_y) for collected summary facet plots (#804).

Summary facets default to independent y-scales; pin CE (etc.) with Collection.plot(y_ranges={"coulombic_efficiency": [0, 110]}) (Plotly).

Energy Storage - Battery - Python
Published by jepegit 25 days ago

ecmwf-opendata - 0.3.34

What's Changed

Full Changelog: https://github.com/ecmwf/ecmwf-opendata/compare/0.3.33...0.3.34

Climate Change - Climate Data Access and Visualization - Python
Published by awarde96 25 days ago

Plant-for-the-Planet - 2026-07-30-release-fix-map-embed

What's Changed

Full Changelog: https://github.com/Plant-for-the-Planet-org/planet-webapp/compare/2026-07-29-dependency-release...2026-07-30-release-fix-map-embed

Biosphere - Deforestation and Reforestation - TypeScript
Published by mariahosfeld 25 days ago

HydroPowerSimulations.jl - v0.19.0

HydroPowerSimulations v0.19.0

Diff since v0.18.0

Breaking changes

  • bump psi version

Merged pull requests:

  • Fix HydroGen MarketBidCost offer-curve breakpoint units (#136) (@luke-kiernan)

Closed issues:

  • README documentation badge links to dev instead of stable (#71)
  • Review of decision model (#101)

Renewable Energy - Hydro Energy - Julia
Published by github-actions[bot] 25 days ago

PowerSimulations.jl - v0.38.0

PowerSimulations v0.38.0

Diff since v0.37.1

Breaking changes

  • Implemente G-1 model

Merged pull requests:

  • Add G-1 security-constrained reserve formulations with monitored componets (#1617) (@SebastianManriqueM)
  • Fix flaky Documentation CI: raise InterLinks inventory fetch timeout (#1649) (@jd-lara)

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 25 days ago

wetterdienst - v0.130.0

What's changed in 0.130.0

Changed

  • Raise stale/incorrect dependency lower bounds to honest, still-compatible floors β€” most importantly fastapi>=0.115 (the REST endpoints use Pydantic query-parameter models, a 0.115 feature). Also httpx>=0.27, uvicorn>=0.30, duckdb>=1, xarray>=2024.6, fsspec>=2024.6, python-dateutil>=2.8.2, tabulate>=0.9, tqdm>=4.64, click>=8.1, and a new sqlalchemy-cratedb>=0.40 floor. No change to resolved/tested versions. (#1777)
  • Rewrite the history/summarize/interpolate endpoint (MCP tool) descriptions so small models stop mis-routing plain weather questions. (#1774)

Fixed

  • Match station names with WRatio in filter_by_name so a bare place name finds its stations. (#1773)
  • Honor the rank argument in filter_by_name. (#1773)
  • Limit the stations listing to the requested rank on REST/CLI. (#1775)
  • Return 404 for OAuth discovery paths so MCP clients treat /mcp as no-auth. (#1772)
  • Type value/quality as float | None in _ValuesItemDict so the /api/values schema matches serialised numbers and MCP output validation stays on. (#1776)

Full changelog: https://github.com/earthobservations/wetterdienst/compare/v0.129.0...v0.130.0

Atmosphere - Meteorological Observation and Forecast - Python
Published by gutzbenj 26 days ago

netcdf-fortran - v4.6.4

What's Changed

Full Changelog: https://github.com/Unidata/netcdf-fortran/compare/v4.6.3...v4.6.4

Climate Change - Climate Data Standards - Fortran
Published by WardF 26 days ago

Watershed Workflow - Watershed Workflow v2.1.0

This is a relatively minor release that is done for people who do not want to rework their currently working notebooks. The next release, version 2.2, will make significant API changes as we settle on a better API for WW version 2.

What's Changed

New features

  • Add new pit-filling algorithms for dual meshes (#153)
  • Export GeoDataFrame from the M2 mesh object with each cell as a row (#134)
  • Add prepartitioning support (#136)
  • Port additional features from v1.6 (#138)
  • Add unit conversion for manager_soilgrids_2017 and revise observation options for steady-state and transient input files (#141)

Bug fixes

  • Fix centroid calculation error for polygons with more than 3 vertices (#158)
  • Fix a few bugs in triangle refinement at stream junctions (#155)
  • Fix stream regions bug (#140)
  • Fix old snow-temperature bug in the cyclic_steadystate template (reported by Sundar Niroula)
  • Fix a variety of bugs and QoL issues found while running the Russian River large-mesh workflow (#146)
  • Fix meshpy Triangle crash on linux-aarch64 by disabling FP contraction
  • Fix broken documentation link (#130)
  • Fix typo in split HUCs logic

Improvements & cleanup

  • General code cleanup and minor QoL changes (#135)
  • Continued work on geologic data handling (#156)
  • Pin Rosetta to protect against breaking changes in future versions
  • Bypass HDF5-shared/CMake incompatibilities in the build
  • Various CI improvements: SEACAS/METIS changes (#137), pymetis/metis arm64 workarounds, forced newer pymetis with CSR object, import testing for the environment build, certificate/container fixes
  • Documentation cleanup updates

Full Changelog

https://github.com/environmental-modeling-workflows/watershed-workflow/compare/watershed-workflow-2.0.0...watershed-workflow-2.1.0

Hydrosphere - Freshwater and Hydrology - Python
Published by ecoon 26 days ago

GPM-API - v0.4.1

Hydrosphere - Ocean and Hydrology Data Access - Jupyter Notebook
Published by github-actions[bot] 26 days ago

Food Expiration Dates - Version 2.10.0

GitHub release (by tag)

The FOSS version does not have the function to scan barcodes because it requires non-FOSS dependencies.

✨ What's New

πŸ†• New feature: What's New
Stay informed about the latest features, improvements, and important app updates.

Full Changelog: https://github.com/lorenzovngl/FoodExpirationDates/compare/v2.9.2...v2.10.0

Consumption - Agriculture and Nutrition - Kotlin
Published by lorenzovngl 26 days ago

ecodata - v8.0.0

Date: 07/29/2026

Improvements

  • Renamed default branch from master to main
  • Deployed suite of new and revised issue templates
  • Deployed suite of new pull request templates
  • Added new repository documentation (CONTRIBUTING, CODE_OF_CONDUCT)
  • Revised README
  • Adjusted workflow triggers and bumped versions of external actions
  • Deployed Air reformatter workflows and style guide
  • Reformatted codebase according to new style guide

Full Changelog: https://github.com/NOAA-EDAB/ecodata/compare/v7.0.0...v8.0.0

Biosphere - Marine Life and Fishery - HTML
Published by BBeltz1 26 days ago

PowerCalc - v1.23.2 🌈

Changes

  • #4383 Update translations @github-actions[bot]
  • #4386 Translate all untranslated strings for all languages @bramstroker
  • #4390 Update translations @github-actions[bot]

πŸ’‘ Power profiles

  • #4403 Add Bseed Smart Zigbee Switch profile @Maxik933

πŸš€ Features

  • #4388 Translate possible errors from action calls @bramstroker
  • #4389 Strict mypy @bramstroker

πŸ› Bug Fixes

  • #4382 Add test for missing test coverage and remove dead code @bramstroker
  • #4385 Correct language code for czech translations @bramstroker
  • #4415 Fix issue raised in 2026.8 beta where composite devices where discovered @bramstroker

Energy Systems - Building Energy Monitoring - Python
Published by github-actions[bot] 26 days ago

InfrastructureSystems.jl - v3.6.2

InfrastructureSystems v3.6.2

Diff since v3.6.1

Merged pull requests:

  • add generic docstring for get_uuid for psy cross-referencing (#601) (@m-bossart)

Energy Systems - Grid Management and Microgrid - Julia
Published by github-actions[bot] 26 days ago

FIMS - v0.9.4

What's Changed

Bug Fixes

Breaking Changes

  • name is now fleet in FIMSFrame
  • fleet_name is now fleet in FIMSFit

Refactor Changes

New features

New Contributors

Full Changelog: https://github.com/NOAA-FIMS/FIMS/compare/v0.9.3...v0.9.4

Biosphere - Marine Life and Fishery - C++
Published by kellijohnson-NOAA 26 days ago

Iris - v3.16.0rc0

This is a release candidate for Iris v3.16.0.

Please see the "What's New" for further details.

Available on conda-forge:

> conda install -c conda-forge/label/rc_iris iris=3.16.0rc0

and PyPI:

> pip install scitools-iris==3.16.0rc0
Release Feedback
GH Discussions

Climate Change - Climate Data Processing and Analysis - Python
Published by HGWright 26 days ago

MOVES - MOVES6-ReleaseCandidate3

EPA's MOtor Vehicle Emission Simulator (MOVES) is a state-of-the-science emission modeling system that estimates emissions for mobile sources at the national, county, and project level for criteria air pollutants, greenhouse gases, and air toxics, available under EPA's Open Source Software policy.

The MOVES6 Release Candidate is made available for testing purposes to allow modelers to become familiar with changes between MOVES5 and MOVES6 before MOVES6 is officially released. Results from the release candidate version may not be used in work for state implementation plans, conformity determinations, or for any other regulatory purpose.

The installer for this release candidate is available under the "Assets" heading below.

Results from the official MOVES6 may differ from the results of this release candidate. Until the official version of MOVES6 is available, MOVES5 is the latest version of MOVES for regulatory purposes. For more information, see MOVES5 Policy Guidance: Use of MOVES for State Implementation Plan Development, Transportation Conformity, General Conformity, and Other Purposes (EPA-420-B-24-038).

For additional information on MOVES, visit EPA's MOVES website.

Emissions - Emission Observation and Modeling - Java
Published by danielbizercox 26 days ago

whisp - v3.0.0a16

What's Changed

Fixes:

  • Fixed GLAD-L Landsat alerts crashing every Whisp run with "Expected a homogeneous image collection" after GLAD dropped the conf25 band from two (South America) UpdResult tiles; confidence bands are now mosaicked tolerantly so a missing year band can't break the collection in #248

Datasets update:

  • Added GLAD-L 2024 (previously unavailable in GEE; GLAD has since added it as conf24 in the 2023final asset) and made GLAD-L pick up the newest Landsat year automatically; adds a GLAD-L_year_2024 output column in #248

Full Changelog: https://github.com/forestdatapartnership/whisp/compare/v3.0.0a15...v3.0.0a16
PyPi Release: openforis-whisp

Biosphere - Deforestation and Reforestation - Python
Published by andyarnell 26 days ago

Nos Gestes Climat - Release v4.14.1

What's Changed

Full Changelog: https://github.com/incubateur-ademe/nosgestesclimat/compare/v4.14.0...v4.14.1

Emissions - Carbon Intensity and Accounting - JavaScript
Published by github-actions[bot] 26 days ago

env_canada - v0.18.0

Changes

  • ECMap / ECRadar: Add interpolation init parameter to smooth the WMS-rendered radar layer instead of leaving it pixelated, using the INTERPOLATION=TRUE WMS parameter (suggested in #143). Defaults to False, matching previous behaviour
  • ECMap / ECRadar: Add webp init parameter to request the radar layer from Environment Canada's WMS as WebP instead of PNG, and return get_latest_frame()/get_loop() output as WebP instead of PNG/GIF, trading lower bandwidth for higher per-frame latency. Defaults to False, matching previous behaviour

Sustainable Development - Data Catalogs and Interfaces - Python
Published by michaeldavie 26 days ago

icechunk - v2.1.2

What's Changed

New Contributors

Full Changelog: https://github.com/earth-mover/icechunk/compare/v2.1.1...v2.1.2

Climate Change - Climate Data Standards - Rust
Published by li-em 26 days ago

Ecoscope - v2.17.3

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.2...v2.17.3

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] 26 days ago

CLEO - v0.67.0

v0.67.0 - 2026-07-29

Bug Fixes

  • remove stray creation of terminalv from RogersGKTerminalVelocity - (b409aef) - clara.bayley

Continuous Integration

  • compile two more breakup example executables - (7f0dc05) - clara.bayley

Features

  • new breakup examples for other flag options - (e76556c) - clara.bayley

Miscellaneous Chores

  • (version) v0.67.0 - (930459d) - yoctoyotta1024
  • (version) v0.66.1 - (2d5ee9e) - yoctoyotta1024
  • add note on use of phi_out - (bd4d4f2) - clara.bayley
  • formatting for robustness - (0a41043) - clara.bayley

Refactoring

  • change colours - (5f52cfd) - clara.bayley
  • make examples compatible with changes to TSCoalBuReFlag - (3ee27bf) - clara.bayley
  • make examples compatible with changes to SUCoalBuReFlag - (764c9e9) - clara.bayley
  • make examples compatible with changes to LowListCoalProb and LowListBuProb - (bb52c12) - clara.bayley
  • make examples compatible with changes for CollisionKineticEnergyNFrags - (0918b01) - clara.bayley
  • remove deleted files from cmake - (ba90725) - clara.bayley
  • remove contrained RogersGKTerminalVelocity from TSCoalBuReFlag - (9f1563b) - clara.bayley
  • remove contrained RogersGKTerminalVelocity from SUCoalBuReFlag - (efa2a4d) - clara.bayley
  • remove contrained RogersGKTerminalVelocity from LowListCoalProb - (b016ca3) - clara.bayley
  • remove contrained RogersGKTerminalVelocity from CollisionKineticEnergyNFrags - (f5d5ed4) - clara.bayley
  • add comment on examples with E_coal = 1.0 - (d7bfe30) - clara.bayley
  • add note clarifying coaleff in example of LongHydroProb box model - (476e745) - clara.bayley
  • show possible collision configurations more clearly - (9d86190) - clara.bayley

Atmosphere - Atmospheric Chemistry and Aerosol - C++
Published by github-actions[bot] 26 days ago

AquaFetch - AquaFetch 1.1.0

AquaFetch 1.1.0

New datasets

  • CAMELS_DE β€” Germany
  • CAMELS_PL β€” Poland
  • CAMELS_PE β€” Peru (136 catchments)
  • UKFlow15 β€” UK 15-minute streamflow (1,369 gauges)
  • CaravanQual β€” water-quality extension for Caravan
  • GlobalRiverNutrients β€” total N / total P / streamflow (observational)
  • NamalValleyPakistan

Enhancements

  • Faster / refactored HYSETS, GSHA, LamaH-Ice, EStreams, CAMELS-H, CAMELS-DE
  • Efficient time-weighted resampler; time-weighted averaging for Ireland (OPW)
  • New free_disk_space method (rr) and two new HYSETS methods
  • Optional seed for reproducible station sampling in fetch()

Fixes

  • Restored core dependencies (pandas, requests) in install_requires
  • Fixed CAMELS-CH coordinate bug and static-feature renaming bug
  • Ireland OPW stations now assert timezone info
  • Removed unguarded print statements

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by AtrCheema 26 days ago

BEMRosetta - 2026 Aug

Libraries
Added libraries for C/C++

GUI
Advice on maximum frequency depending on mesh size

CLI
AQWA/Capytaine: Iterative detection of optimal irregular frequencies removal mesh size in case of the original fails.

General
macOS is supported
AQWA

  • Case generation allows automatic or user supplied irregular frequencies removal mesh.
  • Fixed problems with symmetries

Renewable Energy - Hydro Energy - C++
Published by izabala123 26 days ago

ONEARMY - v2.142.2

2.142.2 (2026-07-29)

Bug Fixes

  • hide membership prices for archived Stripe products (18d8cb4)

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 26 days ago

cellpy - cellpy 2.1.1.post1

Docs-only post-release of v2.1.1 β€” no API, schema, or runtime changes. Safe drop-in over 2.1.1.

  • Backfilled HISTORY.md for the already-shipped 2.1.1 and 2.1.0.post1 releases (#802).

No code behaviour change.

Energy Storage - Battery - Python
Published by cursor[bot] 26 days ago

ecmwf-opendata - 0.3.33

Fix formatting so push to pypi works.

Full Changelog: https://github.com/ecmwf/ecmwf-opendata/compare/0.3.32...0.3.33

Climate Change - Climate Data Access and Visualization - Python
Published by awarde96 26 days ago

ecmwf-opendata - 0.3.32

What's Changed

New Contributors

Full Changelog: https://github.com/ecmwf/ecmwf-opendata/compare/0.3.31...0.3.32

Climate Change - Climate Data Access and Visualization - Python
Published by awarde96 26 days ago

ToOp - v0.10.1

Fixes

Full Changelog: https://github.com/eliagroup/ToOp/compare/v0.10.0...v0.10.1

Energy Systems - Grid Analysis and Planning - Python
Published by spetznick-elia 26 days ago

cellpy - cellpy 2.1.1

Patch release β€” app-builder fixes and conveniences (gathered while building cellpy-simple-gui on 2.1.0.post1). Additive, no breaking changes.

Fix

  • Group-averaged collected summaries now plot: Collection.plot() / plot(spread=True) render group-keyed meanΒ±std frames instead of raising KeyError 'cell' (#785).

Collect / batch

  • cellpy.collect.from_cells() (+ Batch.from_cells): build a batch straight from already-loaded CellpyCell objects held in memory (#787).
  • Collection.is_grouped / meta.grouped: signals whether group-averaging actually happened (#790).
  • Collection.save() now supports xlsx and json (was parquet/csv only) (#789).
  • CurveOptions gains mode / method, forwarded per cell to get_cap β€” parity with the single-cell call (#788).

Instruments / docs

  • cellpy.list_instruments(): quiet, app-facing instrument listing β†’ [{"id", "label", "models", "suffixes"}], no per-module warnings (#786).
  • App/agents guide: note on the polars/pandas frame boundary and quieting cellpy's logger/warnings (#791).

Deferred app-builder ideas split to v2.2: lightweight read_meta (#799), per-instrument metadata schema (#800), app-friendly collected-figure theming (#801).

Energy Storage - Battery - Python
Published by jepegit 26 days ago

AMO-Tools-Desktop - MEASUR v1.8.1

A software tool for calculating energy efficiency for a variety of industrial and manufacturing applications.

MEASUR helps manufacturers increase industrial energy efficiency at the plant-level and in specific systems. Learn step-by-step ways to identify opportunities, monitor progress, and improve efficiency in any facility. Some tools help facilities implement an energy management system and prepare to become ISO 50001 and Superior Energy Performance certified. Based on older Department of Energy (DOE) tools, the Industrial Technologies office (ITO, formerly the Advanced Manufacturing Office, AMO) has undertaken this effort to refactor the legacy tools into a modern environment.
The suite includes 8 assessment modules (6 energy system, the treasure hunt, and the water balance modules), a Data Exploration Module, extensive help text, comprehensive reports, data visualization, and 80 calculators!

Release Notes v1.8.1

MEASUR is a supported application, updates are expected and may impact previously created assessments.
Warnings:

  • Installing v1.0.0 or an earlier version of this tool will automatically reset your app data. Data can be imported into an earlier version from v1.0.1
  • Do not install an earlier version of this tool without resetting your app data (in settings).
  • Assessments created in MEASUR 0.8.0 or later are not compatible with older versions.
  • Exporting from v.0.8.0 and importing to a lower version will continue to work, though new features will not be available.

What's New?

  • Process Cooling Assessment - Various additions and improvements
  • PSAT PDF reports workflow - Improve readability and presentation with quicker access to report PDF

Here are the details of what's new in version 1.8.1:

Application

  • Enhanced: Sponsors list updated
  • Enhanced: Privacy notice updated to clarify observed data

Compressed Air

  • Added: Air Velocity documentation
  • Added: System Capacity documentation

Steam

  • Fixed: SSMT -> Change Fuel Type EEM should be managed by Operational Impacts (settings) visibility

Pumps

  • Enhanced: Upgrade PSAT report building workflow to improve readability and presentation with quicker access to report PDF

Process Cooling

  • Added: Ability to view chiller performance curve after adjustments
  • Added: Allow user to declare unknown pump size
  • Added: Allow user to declare Tower Fan Type Unknown
  • Fixed: Results relating to chiller performance curve
  • Fixed: By default, performance graph shows unadjusted curve
  • Fixed: Use kW/Ton where kW/RT was being used
  • Fixed: issues resulting in stale profile charts for chillers with custom performance

Here are the details of what's new in version 1.7.5:

Application

  • Issue 8602: Fix checkmark icon visibility on copy table clipboard notification
  • Added: Add SEO features, including: sitemap, meta tags, twitter tags
  • Fixed: Show full toast notification width on mobile screens

Compressed Air

  • Added: CA Reduction documentation added
  • Added: Pneumatic Air Requirement Suite documentation added
  • Added: Receiver Tank Suite documentation added
  • Added: CA Operating Cost Suite documentation added
  • Added: Pipe Sizing Calculator Suite documentation added
  • Added: Bag Method documentation added
  • Enhanced: Update CA Leak Survey to fit new suite calculations
  • Enhanced: Improve Compressed Air - Leak Survey UX depicting selected leak to users
  • Enhanced: Improve Receiver Tank calculator cycle time calculation
  • Fixed: CA Inventory error on "Set Data from Existing Compressor"
  • Fixed: Display Compressed Air Assessment EEM results with 0 savings

Fans

  • Fixed: Fixed issue where specified efficiency was incorrectly treated as a fraction instead of percent

Steam

  • Added: Insulated Pipe/Tank Suite documentation added
  • Fixed: Fix missing SSMT Boiler steam pressure conversion
  • Fixed: Steam modeler and SSMT Boiler validation updated

Treasure Hunt

  • Enhanced: Improve presentation and clarity of Treasure Hunt cost savings errors
  • Enhanced: Fix Treasure Hunt gauge threshold for 0-1% values
  • Fixed: Update legacy Treasure Hunt opportunities for backwards compatibility
  • Fixed: Fix Electricity Reduction documentation link
  • Fixed: Show annual cost savings in Waste Heat for Absorption Chillers results panel
  • Fixed: Enforce 1:1 baseline and modification instances and resolve flow rate reduction calculation

Water

  • Added: Add mobile return action to Water Diagram unavailable display message
  • Fixed: remove Known Loss Outflow trailing 0 from Data Drawer Forms

Process Cooling

  • New Feature: A new module for conducting an energy assessment for a process cooling system
  • New Feature: Enter data regarding pump, condenser, towers, and chillers
  • New Feature: Pull in TMY weather data based on zip code
  • New Feature: Specify operating and load schedules
  • New Feature: Conduct "What-if" scenarios for key energy use parameters
  • New Feature: Tables and graphs to understand energy use in system and performance of equipment
  • Coming Soon: Dashboard and rollup support

Known Issues:

  • Users are experiencing issues with the desktop auto-update feature on some machines. In some cases this can be resolved by simply closing the application, re-opening, and allowing the auto-update to finish. The development team is actively working on the issue.
  • The Linux release does not support Auto-updating
  • Renaming an export in Windows Download menu can delete the file extension (.json)
  • Assessments made in a previous major release may experience errors
  • Import files made in a previous major release may not be useable due to field additions/removals
  • We have observed cases where if MEASUR is open for a long period of time while many assessments are present, MEASUR performance can become slow. If experienced, close and reopen MEASUR

Consumption - Production and Industry - TypeScript
Published by github-actions[bot] 26 days ago

icclim - v7.1.7

7.1.7

  • Defer percentile-threshold materialization until a bootstrap path actually needs the threshold field, reducing setup overhead for dask-backed day-of-year percentile count indices.
  • Keep percentile bootstrap cases using threshold_min_value on the exact safe tiled path after Kraken validation showed the experimental fast path was not field-identical on real precipitation data.
  • Keep cftime percentile bootstrap cases on the exact safe tiled path after Kraken validation found a remaining one-cell mismatch in the experimental fast path.
  • Add maintainer notes for bootstrap architecture, readable implementation boundaries and the validated fast-path support matrix.

Validation

Kraken validation on Wednesday, July 29, 2026 confirmed:

  • exact fallback agreement for wet-day percentile bootstrap reruns;
  • exact safe fallback routing for cftime percentile bootstrap in this release;
  • local bootstrap regression slice passing before merge.

Climate Change - Climate Data Processing and Analysis - Python
Published by pagecp 26 days ago

CLEO - v0.66.1

v0.66.1 - 2026-07-29

Bug Fixes

  • remove redundant initialisation of supers - (65bbf47) - Harshada Balasubramanian
  • YAC issues with netcdf dependencies - (ee938c5) - Harshada Balasubramanian
  • resolve yaml-cpp cmake version compatibility - (1a49324) - Harshada Balasubramanian

Build system

  • (deps) upgrade yaml-cpp to 0.9.0 - (62a1e16) - Harshada Balasubramanian

Documentation

  • update documentation for netcdf dependency - (d8bd50d) - Harshada Balasubramanian

Miscellaneous Chores

  • (version) v0.66.1 - (3d84d58) - yoctoyotta1024
  • extend logic for gridbox - (e12080a) - Harshada Balasubramanian
  • wrap sdinit check inside NDEBUG macro - (2cf9149) - Harshada Balasubramanian
  • use yaml-cpp CMakeLists from main - (e689c00) - Harshada Balasubramanian

Atmosphere - Atmospheric Chemistry and Aerosol - C++
Published by github-actions[bot] 26 days ago

Ecoscope - v2.17.2

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.1...v2.17.2

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] 26 days ago

Planscape - 2026.07.29-5411c982d4

  • Public Funding Opportunit Report page (Share Funding Report).
  • Ownership details on Treatable Area layer exported on GeoPackage

Biosphere - Wildfire - Python
Published by roquebetioljr 26 days ago

CLEO - v0.66.0

v0.66.0 - 2026-07-29

Bug Fixes

  • replace rescaling phi with drawing independent random number for coalbure algorithm - (f5b04fb) - clara.bayley

Documentation

  • mention testik 2009 as well as testik et al. 2011 - (c341d0b) - clara.bayley

Features

  • option to use only straub2010 for coalescence or breakup - (76cb1df) - clara.bayley
  • option for constant coaleff coalescence or breakup - (f60b8b0) - clara.bayley
  • new optional configuration to set coaleff - (4be7e09) - clara.bayley

Miscellaneous Chores

  • (version) v0.66.0 - (087b715) - yoctoyotta1024
  • formatting - (439ad5a) - clara.bayley
  • formatting - (f2b45d4) - clara.bayley
  • formatting - (9ce1a91) - clara.bayley
  • formatting - (f65fceb) - clara.bayley

Refactoring

  • add Testik 2009 reference in comments - (d37edf3) - clara.bayley
  • demonstrate use of new coalbure flags in roughpaper - (8dedc7b) - clara.bayley
  • move straub collision eff calc into seperate file - (9e29cee) - clara.bayley
  • demonstrate const coaleff usage in roughpaper main - (3cd9bb7) - clara.bayley

Atmosphere - Atmospheric Chemistry and Aerosol - C++
Published by github-actions[bot] 26 days ago

VeraGrid - 6.4.2

Added

  • Database-backed model storage and remote administration workflows, including grid DB I/O, admin/dashboard
    capabilities, and server-side support for remote model operations.
  • New editor tooling, including admittance and line editors and a per-device admittance matrix editor.
  • Sugiyama-based graph layout/routing work for dynamic editor and diagram positioning.
  • Quadratic cost linear approximation support and area reserves support in linear OPF-related workflows.
  • Additional interoperability coverage, including broader roundtrip/CIM/DGS/MATPOWER-related work and test
    assets.
  • Expanded dynamics/EMT and GSLV integration features, including VSC and short-circuit related capabilities.

Improved

  • GUI usability across navigation, dialogues, copy/paste flows, validation flows, and editor packaging.
  • Dark/light theme behavior, paired-item highlighting, initial colors, and general graphics fluidity.
  • Nonlinear OPF robustness, initialization quality, MATPOWER handling, and benchmark coverage.
  • Dynamics and EMT model handling, including RMS behavior, model assembly, and bus-variable integration.
  • Connection routing, item positioning, and overall editor layout behavior.
  • Server documentation and general project documentation/readme quality.

Fixed

  • Battery dispatch/energy traceability regressions.
  • Grid assignment bugs and nodal-capacity issues.
  • Parser and import edge cases, including Eurostag single-file handling, MATPOWER loading issues, DGS parsing
    details, and other file-format regressions.
  • GUI state and theme/navigation bugs, including dark mode issues and coloring errors.
  • Short-circuit, distributed slack, VSC, RMS, and EMT correctness issues.
  • Packaging, import, missing-file, and assorted test failures across the release range.

Performance

  • Much faster database inserts by migrating to jsonb.
  • Additional vectorization work in GUI/dynamics-related paths and optimized fully vectorized RMS problem
    handling.
  • Better model assembly and other analysis-path optimizations, including improvements around OPF and benchmark
    execution.

Energy Systems - Grid Analysis and Planning - Python
Published by SanPen 26 days ago

CLEO - v0.65.2

v0.65.2 - 2026-07-29

Bug Fixes

  • download yac and yaxt from owncloud servers - (9033bf1) - clara.bayley
  • update yac and yaxt versions - (2ff3d03) - clara.bayley

Continuous Integration

  • update setup python - (eaad482) - clara.bayley
  • update artifacts - (560e885) - clara.bayley
  • update miniconda setup - (55cd573) - clara.bayley
  • update action-gh-release - (83693f4) - clara.bayley
  • fix missing python in mamba environment setup - (03ce75f) - clara.bayley
  • update checkout - (f91250a) - clara.bayley

Miscellaneous Chores

  • (version) v0.65.2 - (1ae9824) - yoctoyotta1024
  • update version of yaml-cpp - (4e3c4a4) - clara.bayley

Refactoring

  • change color in plot - (b368857) - clara.bayley

Atmosphere - Atmospheric Chemistry and Aerosol - C++
Published by github-actions[bot] 26 days ago

Climate Risk Assessment Book - v2026.07.0

CLIMAAX CRA Handbook v2026.07.0

Sustainable Development - Education - CSS
Published by chpolste 26 days ago

Roseau Load Flow - Version 0.16.0a1

What's Changed

Full Changelog: https://github.com/RoseauTechnologies/Roseau_Load_Flow/compare/v0.16.0-alpha...v0.16.0a1

Energy Systems - Energy System Modeling Frameworks - Python
Published by alihamdan 26 days ago

Plant-for-the-Planet - 2026-07-29-dependency-release

What's Changed

Full Changelog: https://github.com/Plant-for-the-Planet-org/planet-webapp/compare/2026-07-28-accessibility-fixes...2026-07-29-dependency-release

Biosphere - Deforestation and Reforestation - TypeScript
Published by mariahosfeld 26 days ago

Oceananigans.jl - v0.110.13

Oceananigans v0.110.13

Diff since v0.110.12

Merged pull requests:

  • Reduce kernel launching overhead (#5774) (@jackdfranklin)
  • Adds adapt method for IsopycnalSkewSymmetricDiffusivity (#5785) (@jlk9)
  • Improve docstrings for viscosity and diffusivity (#5813) (@tomchor)
  • Fix interpolate reading the wrong cell on fine Float32 LatitudeLongitudeGrids (#5822) (@xkykai)
  • Support multi-dimensional conservative regridding with regrid! (#5824) (@xkykai)
  • Fix column_depth when close to an immersed boundary (#5826) (@simone-silvestri)
  • Bump patch release v0.110.13 (#5831) (@xkykai)

Closed issues:

  • Extend regrid! for conservative multi-axis regridding (#5716)
  • interpolate reads the wrong cell on fine Float32 LatitudeLongitudeGrids (#5821)
  • Conservative regrid! drops fractional-cell contributions in the last row when a transverse dimension is Periodic (#5825)
  • Conservative regrid! along a Periodic dimension reads past the source face array (#5830)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 27 days ago

SteVe - steve-3.14.0

What's new:

  • Refactor OCPP client #2051
  • Refactor OcppJsonChargePoint (test station impl) to fix a race in ITs #2061
  • Pass down Task to OcppCallbacks #2053
  • Refine stop meter value selection with monotonic streaks #2063
  • Fix elapsed connection duration formatting on UI #2064
  • Add disconnect button for OCPP JSON sessions #2065
  • Improve CertificateSigningServiceLocal #2066
  • Fix: Reject plain WS connections when profile 2 is configured #2067
  • Refactor: use generic event OcppStationStatusUpdate for connector status updates #2082
  • Add a status_timestamp column to the reservation table #2085
  • Improve IdTag authorization context and nullability contracts #2087
  • Classify OCPP msg validation failures as hard or soft, early exit when hard #2092 (also fixes https://github.com/steve-community/steve/security/advisories/GHSA-xgmv-c7vq-m9wp)
  • Powerfill donation: OCTT workarounds #2093
  • Update dependencies and other refactors/cleanups

Thanks to all contributors!

This release contains the same OCPP implementation and protocol behavior that formed the foundation of Powerfill’s OCA-certified CSMS.

Consumption - Mobility and Transportation - Java
Published by goekay 27 days ago

MAAP - v5.1.2a8

Biosphere - Biomass - Python
Published by github-actions[bot] 27 days ago

iNaturalistReactNative - v1.0.27+224

FIXED

  • Android: Camera zoom stutters and does not stay zoomed
  • Photos and sounds should fully delete when tapping back without saving

Biosphere - Biodiversity Citizen Science - Fluent
Published by jtklein 27 days ago

Pywr-DRB - Pywr-DRB v2.2.0

v2.2.0 (2026-07-28)

Overview

Pywr-DRB v2.2.0 adds a new perfect_foresight flow prediction mode, a new STARFITOfflineSimulator class which simulates STARFIT reservoir releases outside of the Pywr-DRB simulation, and the ability to run the model with custom STARFIT parameters. The pre-packaged observed flow and storage records have been extended through July 2026, with an improved NYC reservoir storage record. This release also contains bug fixes for ensemble simulations run using MPI.

New Functionality

1. New flow_prediction_mode option in ModelBuilder

The FFMP-based release rules for the NYC and lower basin reservoirs rely on multi-day predictions of flows at Montague and Trenton. In prior versions, these predictions were always generated using a regression-based disaggregation method. This remains the default behavior.

The new flow_prediction_mode option in the ModelBuilder options allows the user to choose between prediction methods:

  • "regression_disagg" (default): Regression-based flow predictions, identical to prior versions.
  • "perfect_foresight": Predictions constructed such that the model has perfect knowledge of future non-NYC flow contributions at Montague and Trenton. In this mode, NYC reservoirs contribute zero to the predicted flows (their releases are the quantity being determined by the FFMP logic), STARFIT-controlled reservoirs contribute pre-simulated STARFIT releases (see STARFITOfflineSimulator below), and all other nodes contribute their consumption-adjusted catchment inflows.

The legacy internal "perfect foresight" method, which took predictions directly from the dataset gage flows without accounting for reservoir operations, has been removed.

import pywrdrb

mb = pywrdrb.ModelBuilder(
    start_date="1983-10-01",
    end_date="1985-12-31",
    inflow_type="nhmv10_withObsScaled",
    options={"flow_prediction_mode": "perfect_foresight"},
)
mb.make_model()
mb.write_model("./model_perfect_foresight.json")

1.1 Regenerated predicted_inflows_mgd.csv and predicted_diversions_mgd.csv

The predicted_inflows_mgd.csv files for all nine pre-packaged datasets, and the predicted_diversions_mgd.csv file, have been re-generated and now contain both regression_disagg and perfect_foresight prediction columns. This allows users to run either prediction mode without re-running the preprocessors.

The regression_disagg predicted inflow values are unchanged relative to v2.1.0. The predicted diversions have been re-fit using the updated observed records (described below), so the regression-based diversion predictions differ from v2.1.0 and now extend through May 2025.

2. STARFITOfflineSimulator for offline reservoir simulation

The new pywrdrb.pre.STARFITOfflineSimulator class replicates the STARFIT release logic used by the pywrdrb.parameters.STARFITReservoirRelease parameter, but runs outside of the Pywr simulation. Given a timeseries of catchment inflows, it simulates storage dynamics and releases day-by-day for each STARFIT-controlled reservoir.

This class is used to generate the pre-simulated releases required by the perfect_foresight prediction mode. It can also be used on its own to study STARFIT release behavior for a given inflow scenario, without needing to run the full Pywr-DRB model.

from pywrdrb.pre import STARFITOfflineSimulator

sim = STARFITOfflineSimulator(initial_volume_frac=0.8)
sim.load_parameters()
releases_df = sim.simulate_all(catchment_inflows_df)

3. Use custom STARFIT parameters

In prior versions, the STARFIT reservoir rule parameters were always loaded from the istarf_conus.csv file included in the package. The new starfit_params_filename option in the ModelBuilder options allows the user to provide an alternative STARFIT parameter CSV. The file must follow the same format as istarf_conus.csv and contain rows for all Pywr-DRB reservoirs. The custom parameters are used for both the reservoir capacities and the STARFIT release rules.

mb = pywrdrb.ModelBuilder(
    start_date="1983-10-01",
    end_date="1985-12-31",
    inflow_type="nhmv10_withObsScaled",
    options={"starfit_params_filename": "./my_starfit_params.csv"},
)

Note that this option cannot be combined with the run_starfit_sensitivity_analysis option, which loads parameters from a separate scenario file.

4. Updated default STARFIT parameters for FE Walter, Beltzville, Blue Marsh, and Prompton

The default STARFIT rule parameters for the four lower basin flood control reservoirs (fewalter, beltzvilleCombined, blueMarsh, prompton) have been updated in istarf_conus.csv. The new parameters were fit to the observed reservoir storage and release records (2004-2023): the normal operating range (NOR) bounds now follow the observed seasonal storage guide curves, and the seasonal release harmonics were fit by water balance so that simulated releases reproduce the observed seasonal storage cycle.

Compared to the prior defaults, the updated parameters substantially improve simulated storage and release accuracy at all four reservoirs. Notable changes:

  • Adjusted_MEANFLOW_MGD values are now set to the mean catchment inflows for each reservoir, correcting values which were previously off by up to a factor of three (e.g., FE Walter listed 137 MGD vs. an actual mean inflow near 400 MGD). This corrects the scaling of the inflow-response and storage-response terms in the release function.
  • The Beltzville capacity (Adjusted_CAP_MG) was raised from 13,500 MG to the storage-curve maximum of 17,750 MG. The prior value was below the observed normal pool volume (~14,000 MG), which made the observed storage level unreachable in simulation. The DRBC Water Code priority staging in lower_basin_ffmp.py uses separate hard-coded usable-storage values and is unaffected.
  • Prompton's release bounds were updated using the Prompton release gauge (USGS 01429000): a 10 MGD minimum consistent with observed low releases, and a 2,000 MGD maximum which allows observed flood peaks to pass.
  • The DRBC-specified conservation releases and maximum discharges at FE Walter, Beltzville, and Blue Marsh are hard-coded in lower_basin_ffmp.py and are unchanged by the new parameters.

The prior default parameter values are retained in istarf_conus.csv under new row names (fewalter_v2.1_default, beltzvilleCombined_v2.1_default, blueMarsh_v2.1_default, prompton_v2.1_default) for reference. To run the model with the prior parameters, copy these rows into a custom parameter CSV (using the original row names) and pass it via the starfit_params_filename option.

The packaged perfect_foresight prediction files were re-generated using the updated default parameters, since the pre-simulated STARFIT releases embedded in those predictions are computed from the default parameter set.

The figure below compares observed storage dynamics against offline STARFIT simulations (driven by pub_nhmv10_BC_withObsScaled catchment inflows) using the v2.1 and v2.2 default parameters. Each panel shows the seasonal (day-of-year) median and interquartile range of storage as a fraction of the v2.2 capacity, over each reservoir's observed storage record. Note the offline simulation represents pure STARFIT behavior only β€” the FFMP / Trenton-contribution logic that also influences Beltzville and Blue Marsh releases in the full model is not included.

Observed vs v2.1 and v2.2 default STARFIT storage dynamics

4.1 Prompton release gauge added to observed data

The Prompton release gauge (USGS 01429000, Lackawaxen River at Prompton) is now retrieved with the observational data and included as its own column (01429000) in gage_flow_mgd.csv. Prompton has no downstream gauge node in the model network, so this record is provided for observation comparisons such as evaluating simulated Prompton releases.

Updated Observed Data Records

The pre-packaged observed data records (gage_flow_mgd.csv, catchment_inflow_mgd.csv, reservoir_storage_mg.csv) have been re-generated and now extend through 2026-07-20.

The NYC reservoir storage records (cannonsville, pepacton, neversink) have been improved:

  • DRBC daily storage records are now used for the period 1999-12-01 through 2021-11-30, replacing the storage values derived from USGS elevation records over that period. USGS-derived values are still used outside of the DRBC record period.
  • Early-record storage values known to be erroneous are now dropped on a per-reservoir basis, using reservoir-specific validity start dates.
  • The retrieval workflow (pywrdrb.pre.ObservationalDataRetriever) now exports an audit CSV of the USGS-derived NYC storage record, and includes a storage diagnostics plotting function for visual inspection of the merged record.

New tests have been added in tests/test_observation_loader.py to verify the merged NYC storage record.

Bug Fixes

1. Fixed scenario indexing in ensemble simulations

Some parameters were indexing scenario data using the local scenario index rather than scenario_index.global_id. This produced incorrect scenario mappings when running ensemble simulations with MPI, where each rank only sees a subset of scenarios. The affected parameters, including STARFITReservoirRelease and the lower basin FFMP parameters, now use global_id throughout.

2. Fixed ensemble realization ID handling in preprocessors

The ensemble preprocessors were inconsistent in their handling of integer vs. string realization IDs when reading ensemble HDF5 files, which caused failures for some ensemble datasets. Realization IDs are now consistently coerced to strings. The ensemble preprocessors also now accept an optional comm argument, allowing an existing MPI communicator to be reused.

3. STARFIT releases now enforce the minimum release in all storage conditions

Previously, the STARFITReservoirRelease parameter only enforced the minimum release (R_min) when storage was below the normal operating range. When storage was inside the NOR, the release function could dip below R_min on very dry days. The minimum release is now enforced in all storage conditions, consistent with the DRBC conservation release requirements at the lower basin reservoirs.

The practical impact is small: in a 40-year test simulation, this affected roughly 0.27% of days at Blue Marsh (the most affected reservoir), with all other days unchanged. The same correction is applied in the STARFITOfflineSimulator.

Hydrosphere - Freshwater and Hydrology - Python
Published by TrevorJA 27 days ago

specify7 - v7.12.0.7

Release Notes

Biosphere - Biodiversity Data Access and Management - TypeScript
Published by grantfitzsimmons 27 days ago

cellpy - cellpy 2.1.0.post1

Post-release of v2.1.0 β€” docs-only, no code behaviour change. Safe drop-in over 2.1.0.

  • Stripped issue-tracker references (#NNN, cellpy-core#NNN, epic/decision/Stage codes) and "what it used to be, in which issue" migration narrative out of package docstrings across 100 modules, so the API reference reads cleanly (#771).
  • Documented the Read the Docs header release-badge behaviour β€” it always shows the live GitHub latest release; the RTD version switcher is the source of truth (#776).

No API, schema, or runtime changes.

Energy Storage - Battery - Python
Published by jepegit 27 days ago

FACTS - v1.1.5 July 28, 2026

This release adds the ability to create and launch a containerized version of FACTS, that can be installed in 3 steps. Documentation has also been updated accordingly.

This version was used to demo FACTS at the WHOI-NASA summer school 2026.

What's Changed

Full Changelog: https://github.com/radical-collaboration/facts/compare/v1.1.4...v1.1.5

Climate Change - Natural Hazard and Storms - Jupyter Notebook
Published by kemccusker 27 days ago

SlideRule Earth - v5.5.0

see https://docs.slideruleearth.io/developer_guide/release_notes/release_notes.html

Sustainable Development - Environmental Satellites - C++
Published by jpswinski 27 days ago

TZ-OSeMOSYS - v0.4.0

Changes

  • Migrate to linopy 0.9 (#191) @edwardxtg

Energy Systems - Energy System Modeling Frameworks - Python
Published by github-actions[bot] 27 days ago

cellpy - cellpy 2.1.0

cellpy 2.1.0

Stable Stage-4 release: cellpy.batch / cellpy.collect redesign, Epic E shim removals, v9 example data.

Migration: see docs/getting_started/migration_v2.0_to_2.1.md and HISTORY.md Β§2.1.0.

Pin: cellpycore==0.2.4 (unchanged from 2.0.0).

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.0.0...v2.1.0

Energy Storage - Battery - Python
Published by jepegit 27 days ago

ECTO - 2026-07-28 Release

What's Changed

New Contributors

Full Changelog: https://github.com/EnvironmentOntology/environmental-exposure-ontology/compare/v2026-07-12...v2026-07-28

Sustainable Development - Taxonomy and Ontology - Makefile
Published by aleixpuigb 27 days ago

optihood - v0.2.13

What's Changed

Full Changelog: https://github.com/SPF-OST/optihood/compare/v0.2.12...v0.2.13

Energy Systems - Renewable Energy Integration - HTML
Published by ahobeost 27 days ago

WISDEM - Sync with OpenMDAO v3.45

What's Changed

Full Changelog: https://github.com/NLRWindSystems/WISDEM/compare/v4.2.5...v4.2.6

Renewable Energy - Wind Energy - Python
Published by gbarter 27 days ago