Table of Contents
2009 Unidata NetCDF Workshop for Developers and Data Providers
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
The NetCDF Web Site
3.5
Installing netCDF
3.6
Getting Support
3.7
Alternatives to netCDF
4
The "Classic" NetCDF Data Model
4.0
Models, Conventions, and Formats
4.1
NetCDF Files
4.2
Dimensions
4.3
Variables
4.4
Variable Methods
4.5
Attributes
4.6
Attribute Methods
4.7
The "Classic" NetCDF Data Model
4.8
Introducing CDL (Common Data Language)
4.9
Another Simple Example
4.10
A Strong Conventon: Coordinate Variables
4.11
An Example of Coordinate Variables
4.12
Variables Versus Attributes
4.13
Classic NetCDF Model Limitations
5
NetCDF Utilities: ncdump and ncgen
5.0
CDL
5.1
ncdump
5.2
Header Information
5.3
Coordinate values with header information
5.4
All the data
5.5
Annotate values by index
5.6
Data for a few specified variables
5.7
Human-readable times
5.8
Kind of netCDF data
5.9
ncgen
5.10
ncdump and ncgen together
5.11
Unicode Names
5.12
NcML
5.13
Special attributes for netCDF-4 data
5.14
Other NetCDF Utilities
6
Best Practices
6.0
Overview
6.1
Purpose of Conventions
6.2
Conventions
6.3
Coordinate Systems
6.4
Variable Grouping
6.5
Variable Attributes
6.6
Strings and Character Variables
6.7
Calendar Date and Time
6.8
Packed Data Values
6.9
Missing Data Values
6.10
Summary
7
CF Conventions
7.0
Goals
7.1
CF Attributes
7.2
Where is CF Metadata Used?
7.3
A Brief History of CF
7.4
Principles
7.5
CF Standard Names
7.6
CF Appendices as references
7.7
Future Directions for CF
8
libcf: A New Library for CF Conventions Support
8.0
LibCF, the NetCDF Library for the Climate and Forecast (CF) Conventions
8.1
Goals of LibCF
8.2
Current Status of LibCF
8.3
File Level Functions in LibCF
8.4
Variable Metadata in LibCF
8.5
Latitude and Longitude Functions in LibCF
8.6
Vertical Dimension Functions in LibCF
8.7
Time Functions in LibCF
8.8
Geographic Subsetting in LibCF
8.9
LibCF Example
8.10
The LibCF Website
8.11
Future Plans for LibCF
9
Using NetCDF: IDV and NCL
10
NetCDF APIs
10.0
Overview
10.1
The C API
10.2
C API Example
10.3
The C++ API
10.4
The Fortran-77 API
10.5
The Fortran-90 API
10.6
The Java API
10.7
Architecture of NetCDF APIs and Libraries
10.8
Python APIs
10.9
The Ruby API
10.10
Perl APIs
10.11
Other APIs for netCDF
10.12
Some Common Errors to Avoid
11
NetCDF Example Programs
11.0
The NetCDF Examples in C/F77/F90/C++
11.1
The NetCDF Example Requirements
11.2
The NetCDF Example Data Sets
11.3
The Simple XY Example Dataset
11.4
Write The Simple XY Example in F90
11.5
The Simple XY Write Example in C
11.6
The Simple XY Example in C++
11.7
Creating a NetCDF Dataset
11.8
Read The Simple XY Example in F90
11.9
The 2D Example Dataset CDL
11.10
The 4D Example Dataset CDL
11.11
Reading The 4D Example in C
11.12
Reading a NetCDF Dataset with Known Names
11.13
Reading a NetCDF Dataset with Unknown Names
11.14
Issues in Writing Generic NetCDF Software
12
Remote Access to Datasets Through netCDF-3
13
Formats and Performance
13.0
NetCDF Format Versions
13.1
Parts of a File in Classic Format
13.2
Classic File Format
13.3
Benchmark Example
13.4
Classic API Performance Tips
13.5
Using Less Space for Data
13.6
Using Less Time for Data Access
13.7
Format and Performance Issues for Discussion
14
Using NetCDF: The Cooperative Arctic Data and Information Service (CADIS)
15
Introduction to NetCDF-4
15.0
The NetCDF-4 Data Model
15.1
NetCDF-4 Features
15.2
Compatibility of NetCDF-4
15.3
Unicode Names
15.4
Groups
15.5
Multiple Unlimited Dimensions
15.6
Compound Types
15.7
Enumerations
15.8
Variable-Length Types
15.9
NetCDF-4 Performance Improvements
15.10
Chunking
15.11
Compression
15.12
Ample Variable Sizes
15.13
Efficient Dynamic Schema Changes
15.14
Parallel I/O
15.15
Reader Makes Right Conversions
15.16
NetCDF-4 Status
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
Advanced Utilities
20
Remote Access and NetCDF-4
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 the New NetCDF-4 Atomic Types
22.0
Groups and New Atomic Types in NetCDF-4
22.1
What are Groups?
22.2
Using Groups
22.3
CDL Example of Groups
22.4
Possible Uses for Groups
22.5
Using Groups in Fortran 77
22.6
Using Groups in Fortran 77 (continued)
22.7
Strings
22.8
Example Creating an Array of Strings
22.9
Example Reading an Array of Strings
22.10
Additional Numeric Types
22.11
Additional Numeric Types
23
User Defined Types in NetCDF-4
23.0
Using User Defined Types
23.1
Writing and Reading Data of User Defined Type
23.2
Learning about User Defined Types
23.3
Introduction to Compound Types
23.4
Compound Type CDL Example
23.5
Using Compound Types
23.6
Using Enums
23.7
Uses of Enumerations
23.8
Enum CDL Example
23.9
Enum Example
23.10
Using the Opaque Type
23.11
Variable-Length Types
23.12
Introuction to Variable Length Types
23.13
CDL Example of Variable-Length Types
23.14
CDL Example of Nested Variable-Length Types
23.15
Variable Length C Example
23.16
Using Variable Length Types, Continued
23.17
Sea Sounding Example Code
23.18
Sea Sounding Example
24
NetCDF-4 Interoperability
25
The Future of netCDF
25.0
Goals for Unidata data access infrastructure
25.1
Near-term plans for netCDF
25.2
Long-term plans for Unidata data access infrastructure
25.3
Speculations
25.4
Conclusion of Workshop