Table of Contents
2010 Unidata NetCDF Workshop
1
Introduction
2
Overview of Unidata
3
Overview of netCDF
3.0
What is netCDF?
3.1
What is netCDF, really?
3.2
NetCDF Features
3.3
NetCDF's Niche
3.4
Alternatives to netCDF
3.5
The NetCDF Web Site
3.6
Installing netCDF
3.7
Getting Support
4
The Two NetCDF Data Models
4.0
Models, Conventions, and Formats
4.1
NetCDF Data Models
4.2
NetCDF Files
4.3
Dimensions
4.4
Variables
4.5
Variable Methods
4.6
Attributes
4.7
Attribute Methods
4.8
The "Classic" NetCDF Data Model
4.9
Introducing CDL (Common Data Language)
4.10
Another Simple Example
4.11
A Convention for Coordinates: Coordinate Variables
4.12
An Example of Coordinate Variables
4.13
Variables Versus Attributes
4.14
Classic NetCDF Model Limitations
4.15
The NetCDF-4 Data Model
4.16
When to Use the Enhanced Data Model
5
NetCDF Utilities
5.0
CDL
5.1
ncdump
5.2
Examples of ncdump use
5.3
NcML
5.4
ncgen
5.5
Examples of ncgen use
5.6
ncdump and ncgen together
5.7
nccopy
5.8
Examples of nccopy use
5.9
nc-config
5.10
Unicode Names
5.11
Special attributes for netCDF-4 data
5.12
Other NetCDF Utilities
6
CF Conventions
6.0
Goals
6.1
CF Attributes
6.2
Where is CF Metadata Used?
6.3
A Brief History of CF
6.4
Principles
6.5
CF Standard Names
6.6
CF Appendices as references
6.7
Future Directions for CF
7
Best Practices
7.0
Overview
7.1
Purpose of Conventions
7.2
Conventions
7.3
Coordinate Systems
7.4
Variable Grouping
7.5
Variable Attributes
7.6
Strings and Character Variables
7.7
Calendar Date and Time
7.8
Packed Data Values
7.9
Missing Data Values
7.10
Summary
8
IDV
9
Introduction to the NetCDF APIs and Example Programs
9.0
Overview
9.1
The C API
9.2
C API Example
9.3
The C++ API
9.4
The Fortran-77 API
9.5
The Fortran-90 API
9.6
The Java API
9.7
Architecture of NetCDF APIs and Libraries
9.8
Python APIs
9.9
The Ruby API
9.10
Perl APIs
9.11
Other APIs for netCDF
9.12
Some Common Errors to Avoid
9.13
The NetCDF Examples in C/F77/F90/C++
9.14
The NetCDF Example Requirements
9.15
The NetCDF Example Data Sets
9.16
The Simple XY Example Dataset
9.17
Write The Simple XY Example in F90
9.18
The Simple XY Write Example in C
9.19
The Simple XY Example in C++
9.20
Creating a NetCDF Dataset
9.21
Read The Simple XY Example in F90
9.22
The 2D Example Dataset CDL
9.23
The 4D Example Dataset CDL
9.24
Reading The 4D Example in C
9.25
Reading a NetCDF Dataset with Known Names
9.26
Reading a NetCDF Dataset with Unknown Names
9.27
Issues in Writing Generic NetCDF Software
10
Remote Access to Datasets Through netCDF-3
11
NetCDF-Java and THREDDS Data Services
12
Formats and Performance
12.0
NetCDF Format Versions
12.1
Parts of a File in Classic Format
12.2
Classic File Format
12.3
Benchmark Example
12.4
Classic API Performance Tips
12.5
Using Less Space for Data
12.6
Using Less Time for Data Access
12.7
Format and Performance Issues for Discussion
13
Introduction to NetCDF-4
13.0
The NetCDF-4 Data Model
13.1
NetCDF-4 Features
13.2
Compatibility of NetCDF-4
13.3
Unicode Names
13.4
Groups
13.5
Multiple Unlimited Dimensions
13.6
Compound Types
13.7
Enumerations
13.8
Variable-Length Types
13.9
NetCDF-4 Performance Improvements
13.10
Chunking
13.11
Compression
13.12
Ample Variable Sizes
13.13
Efficient Dynamic Schema Changes
13.14
Parallel I/O
13.15
Reader Makes Right Conversions
13.16
NetCDF-4 Status
14
Using NetCDF: The Cooperative Arctic Data and Information Service (CADIS)
15
Using netCDF - NCAR Climate Data
16
NetCDF Data Models in Detail
17
Unidata's Common Data Model and NetCDF Java Library API Overview
18
Chunking and Deflating Data with NetCDF-4
18.0
What is Chunking?
18.1
Choosing Chunksizes
18.2
Setting the Chunksizes in NetCDF-4
18.3
Example of Setting Chunksizes in Fortran 90
18.4
The Cache in NetCDF-4
18.5
Setting the Cache in NetCDF-4
18.6
Per-Variable Compression in NetCDF-4
18.7
Per-Variable Compression in NetCDF-4
18.8
Per-Variable Compression in NetCDF-4, Results
18.9
How to Use Per-Variable Compression in NetCDF-4
18.10
Contiguous Variables
18.11
Using Contiguous Variables
18.12
Example of Contiguous Variable
19
What NetCDF Developers Should Know About HDF5
20
Using udunits
21
Parallel I/O with NetCDF
21.0
Parallel I/O
21.1
Introduction to Parallel I/O
21.2
The pNetCDF Package
21.3
Parallel I/O in NetCDF-4
21.4
Building NetCDF-4 with Parallel I/O
21.5
Using Parallel I/O in NetCDF-4
21.6
Collective and Independent Operations with Parallel I/O in NetCDF-4
21.7
Parallel I/O Example
21.8
Example of Simple Parallel I/O Access
21.9
Example of Simple Parallel I/O Access (part 2)
21.10
Using NetCDF Parallel I/O in Fortran 90
21.11
Jumpshot Graph of Independent Parallel Data Writes
21.12
Jumpshot Graph of Collective Parallel Data Writes
22
Using Groups and NetCDF-4 Types
22.0
Groups and Types in NetCDF-4
22.1
What are Groups?
22.2
CDL Example of Groups
22.3
Possible Uses for Groups
22.4
Strings
22.5
Example Creating an Array of Strings
22.6
Additional Numeric Types
22.7
Using User Defined Types
22.8
Writing and Reading Data of User Defined Type
22.9
Learning about User Defined Types
22.10
Introduction to Compound Types
22.11
Example with Compound Types in netCDF-4
22.12
Using Enums
22.13
Uses for Enumerations
22.14
Enum CDL Example
22.15
Using the Opaque Type
22.16
Opaque Example
22.17
Variable-Length Types
22.18
Example of Variable-Length Types
22.19
Using Variable Length Types
22.20
Sea Sounding Example
23
NetCDF-4 Interoperability
24
libcf: A New Library for CF Conventions Support
24.0
LibCF, the NetCDF Library for the Climate and Forecast (CF) Conventions
24.1
Goals of LibCF
24.2
Current Status of LibCF
24.3
File Level Functions in LibCF
24.4
Variable Metadata in LibCF
24.5
Latitude and Longitude Functions in LibCF
24.6
Vertical Dimension Functions in LibCF
24.7
Time Functions in LibCF
24.8
Geographic Subsetting in LibCF
24.9
LibCF Example
24.10
The LibCF Website
24.11
Future Plans for LibCF
25
GRIDSPEC
26
The Future of netCDF
26.0
Goals for Unidata data access infrastructure
26.1
Near-term plans for netCDF
26.2
Long-term plans for Unidata data access infrastructure
26.3
Speculations
26.4
Conclusion of Workshop