Я открываю файлы NetCDF из центра обработки данных Copernicus, используя xarray версии 2024-11-0, используя функцию open_dataset следующим образом:
Код: Выделить всё
file1=xr.open_dataset("2021-04.nc")
tem = file1['t2m']
Хотя размер файла составляет 16,6 МБ, переменная tem, похоже, занимает двойной размер фактического файла, как можно увидеть ниже (конец первой строки) или контролировать с помощью команды top
Код: Выделить всё
Size: 39MB
[9753030 values with dtype=float32]
Coordinates:
number int64 8B ...
* latitude (latitude) float64 3kB 38.0 37.9 37.8 37.7 ... -2.8 -2.9 -3.0
* longitude (longitude) float64 6kB -18.0 -17.9 -17.8 ... 60.8 60.9 61.0
* valid_time (valid_time) datetime64[ns] 240B 2021-04-01 ... 2021-04-30
Attributes: (12/32)
GRIB_paramId: 167
GRIB_dataType: fc
GRIB_numberOfPoints: 325101
GRIB_typeOfLevel: surface
GRIB_stepUnits: 1
GRIB_stepType: instant
...
GRIB_totalNumber: 0
GRIB_units: K
long_name: 2 metre temperature
units: K
standard_name: unknown
GRIB_surface: 0.0
Я могу использовать file1[t2m].astype ('float16'), что уменьшает размер вдвое, но я обнаружил, что большинство значений округляются до первого десятичного знака, поэтому я теряю фактические данные. Я хочу прочитать фактические данные, не используя память, превышающую размер файла данных.
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/793 ... ile-itself