Skip to content

feat(geospatial): add alchemist-geospatial module for real-world climate data - #5556

Open
Wanes01 wants to merge 108 commits into
AlchemistSimulator:masterfrom
Wanes01:alchemist-geospatial
Open

feat(geospatial): add alchemist-geospatial module for real-world climate data#5556
Wanes01 wants to merge 108 commits into
AlchemistSimulator:masterfrom
Wanes01:alchemist-geospatial

Conversation

@Wanes01

@Wanes01 Wanes01 commented Aug 17, 2026

Copy link
Copy Markdown

No description provided.

@codecov

codecov Bot commented Aug 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 61.53%. Comparing base (4db8471) to head (ec5f730).

Additional details and impacted files
@@            Coverage Diff            @@
##             master    #5556   +/-   ##
=========================================
  Coverage     61.53%   61.53%           
  Complexity       14       14           
=========================================
  Files             2        2           
  Lines            78       78           
  Branches          4        4           
=========================================
  Hits             48       48           
  Misses           24       24           
  Partials          6        6           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mergify

mergify Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@Wanes01
Wanes01 force-pushed the alchemist-geospatial branch from 4e73252 to 6da2fa4 Compare August 18, 2026 10:34

@DanySK DanySK left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are several critical issues that must be solved before I go ahead with the review. See comments.

}
}
}
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this there? This induces a big problem with the entire dependency management of the simulator.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a conflict between osmosis-osm-binary, which requires protobuf <= 3.25.5, and cdm-core (used to read formats such as NetCDF), which brings protobuf version 4.31.1.
I wasn't sure how to resolve the issue, so I resolved the conflict this way in both alchemist-maps and alchemist-full.

for (entry in zip.entries()) {
// nothing to do if the entry is directory.
if (entry.isDirectory) continue

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

avoid inconsistent vertical spacing. No empty lines within methods. This applies throughout the codebase

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm on it.

* as described in the file LICENSE in the Alchemist distribution's top directory.
*/

package it.unibo.alchemist.boundary.acquisition.utility

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why "acquisition"?
Also, in the simulator, we have a utils package. This file may be relocated in it.unibo.alchemist.boundary.utils

Also, this looks like a very general zip utility, why do we need to unpack zips? Can't we read them directly with the appropriate stream?

resolutionStrategy {
eachDependency {
if (requested.group == "com.google.protobuf" && requested.name == "protobuf-java") {
useVersion("3.12.2")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is also a big issue

Comment thread build.gradle.kts
repositories {
google()
mavenCentral()
maven("https://artifacts.unidata.ucar.edu/repository/unidata-all/")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope, we can't. Why do we need this? I'd rather republish this on Central. We cannot depend on artifacts that are not available on Maven Central.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cdm-core used in the project requires version >= 5.x, which is not published on Central. There is an old artifact on Central with version 4.3.22; I tried using that one, but it had problems reading the latest version of NetCDF (NetCDF4).

@DanySK
DanySK force-pushed the alchemist-geospatial branch 2 times, most recently from e7313e7 to a01f7e6 Compare August 18, 2026 16:05
Wanes01 added 22 commits August 18, 2026 17:29
…r with data download/caching needs to be added)
Wanes01 added 27 commits August 18, 2026 17:30
…e; move Copernicus inputs into an external JSON
…reduce responsability of EagerGridSnapshots by extracting reusable functions to read and validate a NetCDF file
@DanySK
DanySK force-pushed the alchemist-geospatial branch from a01f7e6 to a42e045 Compare August 18, 2026 17:30
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants