{"library":"netcdf4","title":"netCDF4 Python Interface","description":"The netCDF4-python library provides an object-oriented Python interface to the netCDF C library, enabling interaction with NetCDF version 4 and older NetCDF 3 format files. It leverages HDF5 for advanced features like hierarchical groups, zlib compression, and new data types. Currently at version 1.7.4, the library is actively maintained with frequent releases, including several minor updates and patches each year.","language":"python","status":"active","last_verified":"Wed May 13","install":{"commands":["pip install netCDF4"],"cli":null},"imports":["from netCDF4 import Dataset"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom netCDF4 import Dataset\nimport numpy as np\n\n# Define a dummy NetCDF file path\nfilename = 'example.nc'\n\n# Create a new NetCDF file in write mode ('w')\nwith Dataset(filename, 'w', format='NETCDF4') as nc_file:\n    # Create dimensions\n    nc_file.createDimension('x', 10)\n    nc_file.createDimension('y', 5)\n    nc_file.createDimension('time', None) # 'None' for unlimited dimension\n\n    # Create variables\n    x_var = nc_file.createVariable('x', 'i4', ('x',))\n    y_var = nc_file.createVariable('y', 'i4', ('y',))\n    time_var = nc_file.createVariable('time', 'f8', ('time',))\n    data_var = nc_file.createVariable('temperature', 'f4', ('time', 'y', 'x'))\n\n    # Add attributes to variables\n    data_var.units = 'Celsius'\n    data_var.long_name = 'Air Temperature'\n\n    # Write data to variables\n    x_var[:] = np.arange(10)\n    y_var[:] = np.arange(5)\n    \n    # Write data for the first time step\n    time_var[0] = 0.0\n    data_var[0, :, :] = np.random.rand(5, 10) * 30 + 273.15 # Kelvin example\n    \n    # Write data for a second time step (demonstrates unlimited dimension)\n    time_var[1] = 1.0\n    data_var[1, :, :] = np.random.rand(5, 10) * 30 + 273.15\n\n    print(f\"Successfully created and wrote to {filename}\")\n\n# Read data from the NetCDF file in read mode ('r')\nwith Dataset(filename, 'r') as nc_file:\n    print(f\"\\nOpened {filename} for reading:\")\n    print(f\"File format: {nc_file.data_model}\")\n    print(f\"Dimensions: {list(nc_file.dimensions.keys())}\")\n    print(f\"Variables: {list(nc_file.variables.keys())}\")\n\n    temp_data = nc_file.variables['temperature'][:, :, :]\n    print(f\"Shape of 'temperature' data: {temp_data.shape}\")\n    print(f\"Units of 'temperature': {nc_file.variables['temperature'].units}\")\n    print(f\"Sample temperature data:\\n{temp_data[0, 0, 0]:.2f} {nc_file.variables['temperature'].units}\")\n\n# Clean up the created file\nos.remove(filename)\nprint(f\"\\nCleaned up {filename}\")","lang":"python","description":"This quickstart demonstrates how to create a NetCDF4 file, define dimensions (including an unlimited dimension for time), create variables with attributes, write NumPy array data into these variables, and then read the data back. It uses `Dataset` for file operations and `numpy` for data generation.","tag":null,"tag_description":null,"last_tested":"2026-04-25","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":0}]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-13","installed_version":"1.7.2","pypi_latest":"1.7.4","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":4,"avg_import_s":0.36,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.1,"import_time_s":0.27,"mem_mb":10,"disk_size":"122M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.26,"mem_mb":10,"disk_size":"122M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.9,"import_time_s":0.44,"mem_mb":10.9,"disk_size":"130M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.45,"mem_mb":10.9,"disk_size":"130M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.41,"mem_mb":10.7,"disk_size":"118M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.46,"mem_mb":10.7,"disk_size":"118M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.33,"mem_mb":10.7,"disk_size":"117M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.4,"mem_mb":10.7,"disk_size":"117M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"netCDF4","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.9,"import_time_s":0.27,"mem_mb":9.7,"disk_size":"127M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"netCDF4","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.31,"mem_mb":9.7,"disk_size":"127M"}]}}