Как установить размеры x, y в xarray? - PullRequest
0 голосов
/ 10 июня 2019

Я читаю растровый (NetCDF) файл с растерио, но получаемый массив данных имеет x = lat, y = long.Я хотел бы получить "стандартные" размеры x = long, y = lat.

Я следую этому примеру: https://corteva.github.io/rioxarray/html/examples/clip_geom.html

Файл данных, который я использую, можно загрузить сэтот URL: https://www.dropbox.com/s/ihzo7uln0r4o62k/3B-DAY.MS.MRG.3IMERG.20140831-S000000-E235959.V06.nc4.nc4?dl=0

Мой код:

import rioxarray
import xarray

filename = "/tmp/3B-DAY.MS.MRG.3IMERG.20140831-S000000-E235959.V06.nc4.nc"
xds = xarray.open_rasterio(filename)

DataArray, который я получаю:

<xarray.DataArray (band: 1, y: 45, x: 31)>
array([[[ 0.607266,  0.073276, ...,  0.      ,  0.      ],
        [ 0.      ,  0.089116, ...,  0.      ,  0.      ],
        ...,
        [ 0.      ,  0.      , ..., 19.583122, 16.678072],
        [ 0.      ,  0.      , ..., 18.802921, 16.299553]]], dtype=float32)
Coordinates:
  * band     (band) int64 1
  * y        (y) float64 19.75 19.65 19.55 19.45 ... 15.65 15.55 15.45 15.35
  * x        (x) float64 42.45 42.55 42.65 42.75 ... 45.15 45.25 45.35 45.45
Attributes:
    transform:   (0.1, 0.0, 42.40000839233399, 0.0, -0.09999983960931952, 19....
    res:         (0.1, 0.09999983960931952)
    is_tiled:    0
    nodatavals:  (-9999.900390625,)

Используя gdalinfo:

Warning 1: No UNIDATA NC_GLOBAL:Conventions attribute
Warning 1: No 1D variable is indexed by dimension time
Driver: netCDF/Network Common Data Format
Files: 3B-DAY.MS.MRG.3IMERG.20140831-S000000-E235959.V06.nc4.nc
Size is 31, 45
Origin = (42.400008392333987,19.799996105107393)
Pixel Size = (0.100000000000000,-0.099999839609320)
Metadata:
  lat#fullnamepath=/lat
  lat#long_name=Latitude
  lat#origname=lat
  lat#units=degrees_north
  lon#fullnamepath=/lon
  lon#long_name=Longitude
  lon#origname=lon
  lon#units=degrees_east
  NC_GLOBAL#BeginDate=2014-08-31
  NC_GLOBAL#BeginTime=00:00:00.000Z
  NC_GLOBAL#DOI=10.5067/GPM/IMERGDF/DAY/06
  NC_GLOBAL#EndDate=2014-08-31
  NC_GLOBAL#EndTime=23:59:59.999Z
  NC_GLOBAL#FileHeader=StartGranuleDateTime=2014-08-31T00:00:00.000Z;
StopGranuleDateTime=2014-08-31T23:59:59.999Z
  NC_GLOBAL#history=2019-06-10 11:47:46 GMT Hyrax-1.15.1 https://gpm1.gesdisc.eosdis.nasa.gov:443/opendap/GPM_L3/GPM_3IMERGDF.06/2014/08/3B-DAY.MS.MRG.3IMERG.20140831-S000000-E235959.V06.nc4.nc?precipitationCal%5B0:1:0%5D%5B1953:1997%5D%5B1324:1354%5D,lat%5B1324:1354%5D,lon%5B1953:1997%5D
  NC_GLOBAL#InputPointer=3B-HHR.MS.MRG.3IMERG.20140831-S000000-E002959.0000.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S003000-E005959.0030.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S010000-E012959.0060.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S013000-E015959.0090.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S020000-E022959.0120.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S023000-E025959.0150.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S030000-E032959.0180.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S033000-E035959.0210.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S040000-E042959.0240.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S043000-E045959.0270.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S050000-E052959.0300.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S053000-E055959.0330.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S060000-E062959.0360.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S063000-E065959.0390.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S070000-E072959.0420.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S073000-E075959.0450.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S080000-E082959.0480.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S083000-E085959.0510.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S090000-E092959.0540.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S093000-E095959.0570.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S100000-E102959.0600.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S103000-E105959.0630.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S110000-E112959.0660.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S113000-E115959.0690.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S120000-E122959.0720.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S123000-E125959.0750.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S130000-E132959.0780.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S133000-E135959.0810.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S140000-E142959.0840.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S143000-E145959.0870.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S150000-E152959.0900.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S153000-E155959.0930.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S160000-E162959.0960.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S163000-E165959.0990.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S170000-E172959.1020.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S173000-E175959.1050.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S180000-E182959.1080.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S183000-E185959.1110.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S190000-E192959.1140.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S193000-E195959.1170.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S200000-E202959.1200.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S203000-E205959.1230.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S210000-E212959.1260.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S213000-E215959.1290.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S220000-E222959.1320.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S223000-E225959.1350.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S230000-E232959.1380.V06B.HDF5;3B-HHR.MS.MRG.3IMERG.20140831-S233000-E235959.1410.V06B.HDF5
  NC_GLOBAL#ProductionTime=2019-06-08T01:50:33.054Z
  NC_GLOBAL#title=GPM IMERG Final Precipitation L3 1 day 0.1 degree x 0.1 degree (GPM_3IMERGDF)
  NETCDF_DIM_EXTRA={time}
  precipitationCal#coordinates=time lon lat
  precipitationCal#fullnamepath=/precipitationCal
  precipitationCal#long_name=Daily accumulated precipitation (combined microwave-IR) estimate
  precipitationCal#origname=precipitationCal
  precipitationCal#units=mm
  precipitationCal#_FillValue=-9999.9004
Geolocation:
  LINE_OFFSET=0
  LINE_STEP=1
  PIXEL_OFFSET=0
  PIXEL_STEP=1
  SRS=GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]
  X_BAND=1
  X_DATASET=NETCDF:"3B-DAY.MS.MRG.3IMERG.20140831-S000000-E235959.V06.nc4.nc":lon
  Y_BAND=1
  Y_DATASET=NETCDF:"3B-DAY.MS.MRG.3IMERG.20140831-S000000-E235959.V06.nc4.nc":lat
Corner Coordinates:
Upper Left  (  42.4000084,  19.7999961)
Lower Left  (  42.4000084,  15.3000033)
Upper Right (  45.5000084,  19.7999961)
Lower Right (  45.5000084,  15.3000033)
Center      (  43.9500084,  17.5499997)
Band 1 Block=31x1 Type=Float32, ColorInterp=Undefined
  NoData Value=-9999.900390625
  Unit Type: mm
  Metadata:
    coordinates=time lon lat
    fullnamepath=/precipitationCal
    long_name=Daily accumulated precipitation (combined microwave-IR) estimate
    NETCDF_DIM_time=1
    NETCDF_VARNAME=precipitationCal
    origname=precipitationCal
    units=mm
    _FillValue=-9999.9004

Я ожидаю DataArray с:

Coordinates:
  * band     (band) int64 1
  * x        (x) float64 19.75 19.65 19.55 19.45 ... 15.65 15.55 15.45 15.35
  * y        (y) float64 42.45 42.55 42.65 42.75 ... 45.15 45.25 45.35 45.45

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...