Add core architecture patterns and GIS/weather components from AIOS-Public
This commit is contained in:
124
Docker/TSYS-AIOS-GIS-Tools-Weather-Analysis/README.md
Normal file
124
Docker/TSYS-AIOS-GIS-Tools-Weather-Analysis/README.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# TSYS-AIOS-GIS-Tools-Weather-Analysis Container
|
||||
|
||||
This container is part of the TSYS-AIOS-GIS project and provides advanced weather data analysis capabilities with Jupyter notebooks and specialized meteorological tools.
|
||||
|
||||
## Overview
|
||||
|
||||
The TSYS-AIOS-GIS-Tools-Weather-Analysis container extends the base weather container with advanced analysis tools, Jupyter notebooks for interactive analysis, and specialized meteorological libraries. This container is designed for in-depth weather data analysis and balloon path prediction work.
|
||||
|
||||
## Tools Included
|
||||
|
||||
### Extends from Base Container
|
||||
- All tools from TSYS-AIOS-GIS-Tools-Weather-Base container
|
||||
- Weather data processing libraries, APIs, bulk download tools
|
||||
|
||||
### Advanced Analysis Tools
|
||||
- **Jupyter Notebook**: Interactive environment for weather analysis
|
||||
- **Node.js/npm**: JavaScript runtime and package manager
|
||||
- **IPyKernel**: IPython kernel for Jupyter
|
||||
- **GNU Octave**: Numerical computations (similar to MATLAB)
|
||||
|
||||
### Visualization & Forecasting Libraries
|
||||
- **Cartopy**: Geospatial processing and visualization
|
||||
- **Geoviews**: Geospatial data visualization
|
||||
- **Folium**: Interactive maps with weather data overlays
|
||||
- **Plotly**: Interactive weather visualizations
|
||||
- **Forecast R package**: Time series forecasting
|
||||
|
||||
### Additional R packages
|
||||
- **Lubridate**: Time series manipulation
|
||||
- **Ggplot2/Tidyr/Dplyr**: Data analysis and visualization
|
||||
- **RColorBrewer**: Color palettes for weather maps
|
||||
|
||||
## Usage
|
||||
|
||||
### Building the Weather Analysis Container
|
||||
```bash
|
||||
# From this directory
|
||||
cd /home/localuser/AIWorkspace/TSYS-AIOS-GIS/Docker/TSYS-AIOS-GIS-Tools-Weather-Analysis
|
||||
|
||||
# Use the wrapper script to automatically detect and set user IDs
|
||||
./docker-compose-wrapper.sh build
|
||||
|
||||
# Or run commands in the analysis container with automatic user mapping
|
||||
./docker-compose-wrapper.sh run tsys-weather-analysis [command]
|
||||
|
||||
# Example: Start Jupyter notebook server
|
||||
./docker-compose-wrapper.sh run tsys-weather-analysis jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root --notebook-dir=/workspace --no-browser
|
||||
|
||||
# Example: Start Octave for numerical computations
|
||||
./docker-compose-wrapper.sh run tsys-weather-analysis octave
|
||||
|
||||
# Example: Start an interactive bash session
|
||||
./docker-compose-wrapper.sh run tsys-weather-analysis bash
|
||||
```
|
||||
|
||||
### Using with docker-compose directly
|
||||
```bash
|
||||
# Set environment variables and run docker-compose directly
|
||||
LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build
|
||||
|
||||
# Or export variables first
|
||||
export LOCAL_USER_ID=$(id -u)
|
||||
export LOCAL_GROUP_ID=$(id -g)
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
### Using the wrapper script
|
||||
```bash
|
||||
# Build and start the analysis container with automatic user mapping
|
||||
./docker-compose-wrapper.sh up --build
|
||||
|
||||
# Start without rebuilding (Jupyter will be available on port 8889)
|
||||
./docker-compose-wrapper.sh up
|
||||
|
||||
# View container status
|
||||
./docker-compose-wrapper.sh ps
|
||||
|
||||
# Stop containers
|
||||
./docker-compose-wrapper.sh down
|
||||
```
|
||||
|
||||
## Jupyter Notebook Access
|
||||
|
||||
When running the container with `docker-compose up`, Jupyter notebook will be available at:
|
||||
- http://localhost:8889
|
||||
|
||||
The notebook server is preconfigured to:
|
||||
- Use the workspace directory as the notebook directory
|
||||
- Allow access without authentication (in container only)
|
||||
- Accept connections from any IP address
|
||||
|
||||
## User ID Mapping (For File Permissions)
|
||||
|
||||
The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means:
|
||||
|
||||
- Files created inside the container will have the correct ownership on the host
|
||||
- No more root-owned files after container operations
|
||||
- Works across different environments (development, production servers)
|
||||
|
||||
The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables:
|
||||
|
||||
```bash
|
||||
# Set specific user ID and group ID before running docker-compose
|
||||
export LOCAL_USER_ID=1000
|
||||
export LOCAL_GROUP_ID=1000
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
Or run with inline environment variables:
|
||||
```bash
|
||||
LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up
|
||||
```
|
||||
|
||||
The container runs as a non-root user named `TSYS-Tools` with the detected host user's UID/GID.
|
||||
|
||||
## Weather Analysis Workflows
|
||||
|
||||
This container is optimized for:
|
||||
- Interactive weather data analysis using Jupyter notebooks
|
||||
- Balloon path prediction using weather data
|
||||
- Advanced meteorological calculations
|
||||
- Time series forecasting
|
||||
- Weather data visualization
|
||||
- Climate analysis workflows
|
||||
Reference in New Issue
Block a user