ncview / README.md
Nipun's picture
🌍 TensorView v1.0 - Complete NetCDF/HDF/GRIB viewer
433dab5

A newer version of the Gradio SDK is available: 6.5.1

Upgrade
metadata
title: TensorView - NetCDF/HDF/GRIB Viewer
emoji: 🌍
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false
license: mit

🌍 TensorView - Interactive Geospatial Data Viewer

A powerful browser-based viewer for NetCDF, HDF, GRIB, and Zarr datasets with advanced visualization capabilities.

πŸš€ Features

  • πŸ“Š Multi-dimensional data exploration - Handle complex scientific datasets with automatic slicing
  • πŸ—ΊοΈ Geographic mapping - Built-in map projections with coastlines and gridlines
  • 🎨 Smart color scaling - Automatic percentile-based color limits for optimal visualization
  • πŸ”„ Multiple data formats - NetCDF, HDF5, GRIB, Zarr support
  • πŸŽ›οΈ Interactive controls - Dynamic sliders for dimension exploration
  • πŸ“€ Dual input modes - File upload or direct file path input
  • 🌐 Remote data support - Load from URLs, OPeNDAP, THREDDS servers

🎯 Quick Start

  1. Upload a file or enter a file path
  2. Select a variable from the dropdown
  3. Choose plot type: 2D Image or Map (for geographic data)
  4. Adjust dimension sliders to explore different time steps, pressure levels, etc.
  5. Create plot and explore your data!

πŸ“Š Supported Data Sources

  • NetCDF files (.nc, .netcdf) - Climate and weather data
  • HDF5 files (.h5, .hdf) - Scientific datasets
  • GRIB files (.grib, .grb) - Meteorological data
  • Zarr stores - Cloud-optimized arrays
  • Remote URLs - HTTP/HTTPS links to data files
  • OPeNDAP/THREDDS - Direct server access

🌟 Example Use Cases

  • Climate Data: ERA5 reanalysis, CMIP model outputs
  • Weather Data: GFS/ECMWF forecasts, radar data
  • Air Quality: CAMS atmospheric composition data
  • Oceanography: Sea surface temperature, currents
  • Satellite Data: Remote sensing products

πŸ”§ Technical Details

Built with:

  • xarray + Dask - Efficient handling of large datasets
  • matplotlib + Cartopy - High-quality plotting and maps
  • Gradio - Interactive web interface
  • Multi-engine support - h5netcdf, netcdf4, cfgrib, zarr

Smart Features

  • Automatic color scaling using 2nd-98th percentiles
  • Dimension detection with dynamic slider generation
  • Geographic coordinate recognition for map plotting
  • Memory-efficient lazy loading with Dask

πŸ’‘ Tips

  • For 5D data (like CAMS forecasts): Use sliders to select time, pressure level, etc.
  • For geographic data: Choose "Map" plot type for proper projections
  • Large files: The app handles big datasets efficiently with lazy loading
  • Color issues: The app automatically optimizes color scaling to avoid uniform plots

πŸ—οΈ Architecture

tensorview/
β”œβ”€β”€ io.py          # Data loading (NetCDF, HDF, GRIB, Zarr)
β”œβ”€β”€ plot.py        # Visualization (1D, 2D, maps)
β”œβ”€β”€ grid.py        # Data operations and alignment  
β”œβ”€β”€ colors.py      # Colormap handling
β”œβ”€β”€ utils.py       # Coordinate inference
└── ...

πŸ“ Example Datasets

The app works great with:

  • NASA Goddard Earth Sciences Data
  • ECMWF ERA5 reanalysis
  • NOAA climate datasets
  • Copernicus atmosphere monitoring (CAMS)
  • CMIP climate model outputs

πŸ”— Links: GitHub Repository | Documentation