# 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