Created
April 14, 2026 08:59
-
-
Save felipem775/3a00f9d930eaf78820c3e44ef7c8de5b to your computer and use it in GitHub Desktop.
Muestra la resolución que hay presente en las variables del netcdf.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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