What it does
Climate models, ocean floats, satellites and telescopes save their data in formats made for science: NetCDF (.nc) and FITS (.fits). Spreadsheets cannot open them. This page reads them in your browser, shows what is inside, and turns one variable or table into a CSV file you can open in Excel, R or Python, or into JSON.
- NetCDF classic, 64-bit offset and 64-bit data (CDF-1, CDF-2, CDF-5): every dimension (with the unlimited “record” dimension marked), every variable with its type and shape, and all global and variable attributes.
- FITS: every HDU with data. Images of any number of axes, binary tables (including vector columns, bit columns, complex numbers and variable-length arrays) and ASCII tables, with the full header.
- CSV, TSV and Excel (.xlsx): each sheet as a table, with a guessed type for every column, so you can turn it into JSON.
Not supported: HDF5 and NetCDF-4 files (NetCDF-4 is HDF5 inside), and Parquet. Reading them needs a large library that this page does not load. The page recognises these files and tells you how to convert them: nccopy -k classic in.nc out.nc for NetCDF-4, or pandas.read_parquet(...).to_csv(...) for Parquet.
How to use it
- Open a file, or drop it on the page. Gzipped files (
.fits.gz,.nc.gz) are unzipped for you. Files up to 500 MB. - Read What is inside: the format, the dimensions, the list of variables (or HDUs, or sheets) with their sizes, and the global attributes.
- Under Export, pick a variable. Its attributes and a preview of the CSV appear.
- Choose the CSV layout:
- One row per value has one column per dimension and one for the value, the “long” or “tidy” layout most analysis tools want. Where the file has a coordinate variable (a variable named after its dimension, such as
lat), its values are used instead of 0, 1, 2. - Grid is for variables with two dimensions: the first dimension down the side and the second across the top, like a map.
- One row per value has one column per dimension and one for the value, the “long” or “tidy” layout most analysis tools want. Where the file has a coordinate variable (a variable named after its dimension, such as
- Unpack and mark missing values (on by default) applies
scale_factorandadd_offset, and leaves_FillValueandmissing_valuecells empty. For FITS it appliesBSCALE/BZERO,TSCALn/TZEROnand blanksBLANK/TNULLn. Untick it to get the numbers exactly as stored. - Download CSV or Download JSON. The JSON keeps the shape (nested arrays), the attributes and nulls for missing values. Download the description saves just the structure (dimensions, variables, attributes) as JSON, handy for a data management plan or a README.
Worked example
Press Use the example NetCDF. It is a made-up file of 3 days of air temperature on a grid of 4 latitudes by 5 longitudes. The page shows 4 dimensions (time is unlimited, with 3 records), 5 variables and the global attributes title, Conventions and source.
The temperature variable is stored as short integers with scale_factor 0.01 and add_offset 15. In the preview, the second row reads time 0, lat 40, lon −77.5 and 20.75: the stored number is 575, and 575 × 0.01 + 15 = 20.75. One value is the fill value −32767; it shows as an empty cell (time 0, lat 42.5, lon −75). Untick Unpack and the same cells show 575 and −32767. The CSV has 60 rows (3 × 4 × 5).
Tips
- Text variables in NetCDF are stored as characters with a string-length dimension; the page joins them into strings.
- 64-bit integers keep every digit in CSV. In JSON, integers too large for JavaScript to hold exactly are written as text.
- FITS pixels are numbered from 1, as FITS does, with x along NAXIS1. Row y = 1 (the bottom of the image in most viewers) comes first.
- Exports are limited to 5 million values at a time to keep your browser responsive. Very large variables have no preview but can still be downloaded.
FAQ
Is my file uploaded? No. It is read by code on this page and never leaves your device. The page works offline once open.
Why not NetCDF-4? NetCDF-4 files are HDF5 files, a complex format whose readers are megabytes of code. Many NetCDF-4 files can be converted to classic with nccopy -k classic (or -k 64-bit-offset for large ones) if they use no NetCDF-4-only features such as groups or strings.
Are the numbers right? The readers are checked against files written by scipy, netCDF4-python and astropy, value by value, including packed integers, fill values, record variables, unsigned and 64-bit types, and FITS tables.
Where the numbers come from
- NetCDF reading follows Unidata's NetCDF Classic Format Specification (CDF-1, CDF-2 and CDF-5); FITS reading follows the FITS Standard 4.0 (IAU FITS Working Group). The readers are written by fibub.
- Checked in the tests against files written and read back by scipy.io.netcdf_file, netCDF4-python and astropy.io.fits.
- The example file is made up by the page (a small grid of invented temperatures), not real measurements.
- A file you open is read on the page only. It is never uploaded or stored.
Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.
Last updated 2026-11-09.