Skip to content

Instantly share code, notes, and snippets.

@felipem775
Created April 14, 2026 08:59
Show Gist options
  • Select an option

  • Save felipem775/3a00f9d930eaf78820c3e44ef7c8de5b to your computer and use it in GitHub Desktop.

Select an option

Save felipem775/3a00f9d930eaf78820c3e44ef7c8de5b to your computer and use it in GitHub Desktop.
Muestra la resolución que hay presente en las variables del netcdf.
import netCDF4 as nc
import sys
def analyze_netcdf_resolution(filepath):
"""
Abre un archivo NetCDF e imprime la resolución espacial de cada variable.
"""
try:
dataset = nc.Dataset(filepath, "r")
print(f"Archivo: {filepath}\n")
print("Variables y sus resoluciones espaciales:")
print("-" * 50)
for var_name in dataset.variables:
var = dataset.variables[var_name]
dimensions = var.dimensions
shape = var.shape
print(f"\nVariable: {var_name}")
print(f" Dimensiones: {dimensions}")
print(f" Shape: {shape}")
# Intenta identificar resolución espacial
for dim_name, size in zip(dimensions, shape):
if dim_name.lower() in ["x", "lon", "longitude", "east_west"]:
print(f" Resolución X (longitud): {size} puntos")
if dim_name in dataset.variables and size > 1:
lon_vals = dataset.variables[dim_name][:]
res_lon = abs(float(lon_vals[1]) - float(lon_vals[0]))
print(f" Resolución espacial X: {res_lon:.6f}°")
elif dim_name.lower() in [
"y",
"lat",
"latitude",
"north_south",
]:
print(f" Resolución Y (latitud): {size} puntos")
if dim_name in dataset.variables and size > 1:
lat_vals = dataset.variables[dim_name][:]
res_lat = abs(float(lat_vals[1]) - float(lat_vals[0]))
print(f" Resolución espacial Y: {res_lat:.6f}°")
elif dim_name.lower() in ["z", "level", "height", "pressure"]:
print(f" Niveles (Z): {size}")
dataset.close()
except FileNotFoundError:
print(f"Error: Archivo '{filepath}' no encontrado")
except Exception as e:
print(f"Error: {e}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Uso: python netcdf.py <ruta_archivo.nc>")
sys.exit(1)
filepath = sys.argv[1]
analyze_netcdf_resolution(filepath)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment