CIGLR-ai-lab / GreatLakes-TempSensors

Collaborative repository for optimizing the placement of temperature sensors in the Great Lakes using the DeepSensor machine learning framework. Aiming to enhance the quantitative understanding of surface temperature variability for better environmental monitoring and decision-making.
MIT License
0 stars 0 forks source link

Add generation of land/water mask to gridded data processing #15

Closed DaniJonesOcean closed 3 months ago

DaniJonesOcean commented 3 months ago

Background: Within environmental modeling, accurate delineations of land and water are crucial for various analyses, such as sensor placement, forecasting, and satellite gap-filling. We need a land/water mask for our project. This might be pretty straightforward, but it's worth laying out the full case below.

Issue: We need to be able to generate a gridded land/water mask programmatically, which can be integrated into the existing data preprocessing steps of GreatLakes-TempSensors. Currently, the determination of land vs. water regions relies on manual interpretation or external data sources that users need to integrate themselves.

Proposed Solution: Develop a method that can generate a land/water mask based on available environmental data. For instance, we might utilize non-observation points in our datasets or incorporate geospatial datasets that delineate these boundaries. The proposed solution should:

Discussion Points:

Action Items:

Potential Challenges: While integrating this feature, we need to consider the inherent data variability and missing values prevalent in environmental datasets. Ensuring the mask's accuracy across diverse datasets (e.g., in-situ measurements, satellite imagery) could be challenging.

DaniJonesOcean commented 3 months ago

@eredding02 Has produced an overall land/water mask

Now working on lake-specific land/water masks

eredding02 commented 3 months ago

@DaniJonesOcean I have successfully created both lake-wide and lake specific masks for the Great Lakes. Using remotely sensed SST data, I set all values for lat/lon that a specific lake did not belong to to be Nan using xarray.where(). From there I set all Nan values to 0 and the rest to 1. Below are some of the resulting graphs. Screenshot 2024-06-13 at 3 21 46 PM Screenshot 2024-06-13 at 3 20 58 PM Screenshot 2024-06-13 at 3 21 22 PM

DaniJonesOcean commented 3 months ago

@eredding02 Great! I'm glad to see these - nice work. Feel free to close this issue when you're ready