다음을 통해 공유


빠른 시작: Microsoft Planetary Computer Pro에서 데이터 큐브 시작

필수 조건

수집 원본 설정

데이터 큐브 데이터 수집을 시작하기 전에 수집 원본을 설정해야 합니다. 이 원본은 자산 및 STAC 항목이 저장된 Blob Storage 계정에 액세스하기 위한 자격 증명으로 사용됩니다. 관리 ID 또는 SAS 토큰을 사용하여 수집 원본을 설정할 수 있습니다.

데이터 큐브 컬렉션 만들기

인제션 소스가 설정되면, 데이터 큐브 자산에 대한 컬렉션을 만들 수 있습니다. Python을 사용하여 Microsoft Planetary Computer Pro를 사용하여 STAC 컬렉션 만들기에서 컬렉션을 만드는 단계를 따를 수 있습니다.

데이터 큐브 자산 수집

데이터 큐브 데이터 및 기타 데이터 형식에 대한 수집 프로세스의 시작은 수집 개요에서 확인할 수 있습니다. 그러나 데이터 큐브 개요에 설명된 대로 수집은 이러한 파일 형식에 따라 다른 Planetary Computer Pro의 데이터 처리 단계입니다. GRIB2 데이터 및 관련 STAC 항목은 다른 2차원 래스터 파일과 마찬가지로 수집되지만 NetCDF 및 HDF5 자산은 추가 데이터 보강을 거칩니다. Kerchunk 매니페스트 생성은 데이터 큐브 개요에 설명되어 있지만 주의해야 할 점은 Kerchunk 자산이 원래 자산과 함께 Blob Storage 컨테이너에 추가되고 STAC 항목 JSON에 추가 cube:variables 필드가 추가된다는 점입니다. 이는 Planetary Computer Pro Explorer에서 이러한 데이터 형식을 렌더링할 때 중요합니다.

데이터 큐브 컬렉션 구성

데이터 큐브 컬렉션의 구성은 다른 데이터 형식과 약간 다르게 보이는 또 다른 단계입니다. Microsoft Planetary Computer Pro 웹 인터페이스를 사용하여 컬렉션 구성에 설명된 단계에 따라 데이터 큐브 컬렉션을 구성할 수 있지만 렌더링 구성을 빌드할 때는 다음과 같은 차이점을 알고 있어야 합니다.

NetCDF 및 HDF5 자산에 대한 렌더링 구성

JSON 형식의 표준 Render Configuration 인수는 다음과 같습니다.

[
  {
    "id": "prK1950-06-30",
    "name": "prK1950-06-30",
    "type": "raster-tile",
    "options": "assets=pr-kerchunk&subdataset_name=pr&rescale=0,0.01&colormap_name=viridis&datetime=1950-06-30",
    "minZoom": 1
  }
]

options 필드는 STAC 항목에 나열된 원래 자산과 달리 클라우드 최적화 Kerchunk 자산을 활용하려는 위치입니다. 렌더링하려는 변수의 이름인 인수도 포함 subdataset_name 해야 합니다.

GRIB2 자산에 대한 렌더링 구성

options GRIB2 자산의 렌더링 구성에 대한 필드는 이전 예제와 비슷하지만 인수를 subdataset_name 포함할 필요는 없습니다. GRIB2 데이터는 이미 인덱스 파일을 통해 최적으로 구조화되고 참조되었기 때문입니다. 이 assets 경우 렌더링하려는 밴드 또는 2D 래스터 계층을 나타내는 인수입니다. 다음은 GRIB2 렌더링 구성의 예입니다.

[ 
 {
    "id": "render-config-1",
    "name": "Mean Zero-Crossing Wave Period",
    "description": "A sample render configuration. Update `options` below.",
    "type": "raster-tile",
    "options": "assets=data&subdataset_bands=1&colormap_name=winter&rescale=0,10",
    "minZoom": 1
 }
]

Zarr 자산에 대한 렌더링 구성

options Zarr 자산의 렌더링 구성 필드는 NetCDF 및 HDF5의 필드와 유사합니다. 그러나 assets 인수에 다중 변수 Zarr 스토어에서 한 시점에 하나의 변수를 2D로 렌더링할 수 있도록 시간, 단계 또는 기타 변수를 선택하는 'sel' 매개 변수를 포함해야 합니다. 올바른 변수를 선택하기 위해 입력한 값이 약간 정확하지 않더라도 'sel_method' 매개 변수를 포함해야 할 수도 있습니다. 이 'sel' 매개 변수에 대한 자세한 내용은 Planetary Computer Pro 백 엔드에 사용되는 Python 다차원 데이터 읽기 라이브러리에 대한 공개 설명서에서 확인할 수 있습니다. Xarray Below는 Zarr Render 구성의 예입니다.

[
  {
    "id": "era5-zarr",
    "name": "era5-zarr",
    "type": "raster-tile",
    "options": "assets=data&subdataset_name=precipitation_amount_1hour_Accumulation&colormap_name=viridis&sel=time=2024-01-01&sel_method=nearest&rescale=0,0.01",
    "minZoom": 12
  }
]

탐색기에서 데이터 큐브 자산 시각화

데이터 큐브 자산이 수집 및 구성되면 Planetary Computer Pro Explorer에서 시각화할 수 있습니다. 탐색기 사용에 대한 단계별 가이드는 빠른 시작: Microsoft Planetary Computer Pro에서 탐색기 사용에서 확인할 수 있습니다.

Microsoft Planetary Computer Pro에는 일부 데이터 큐브 자산을 시각화하는 데 사용할 수 있는 타일러가 포함되어 있지만 지원되는 각 데이터 형식과 관련하여 주의해야 할 몇 가지 주의 사항이 있습니다.

NetCDF 및 HDF5 시각화

Microsoft Planetary Computer에 수집할 수 있는 모든 NetCDF 데이터 세트가 Planetary Computer Pro의 시각화 타일러와 호환되는 것은 아닙니다. 데이터 세트에는 시각화할 X 및 Y 축, 위도 및 경도 좌표, 공간 차원 및 경계가 있어야 합니다. 예를 들어 위도와 경도가 변수이지만 좌표가 아닌 데이터 세트는 Planetary Computer Pro의 타일러와 호환되지 않습니다.

NetCDF 또는 HDF5 데이터 세트를 시각화하기 전에 다음을 사용하여 요구 사항을 충족하는지 확인할 수 있습니다.

  1. 필요한 종속성 설치

    pip install xarray[io] rioxarray cf_xarray
    
  2. 다음 함수를 실행하세요.

    import xarray as xr
    import cf_xarray
    import rioxarray
    
    def is_dataset_visualizable(ds: xr.Dataset):
        """
        Test if the dataset is compatible with the Planetary Computer tiler API.
        Raises an informative error if the dataset is not compatible.
        """
        if not ds.cf.axes:
            raise ValueError("Dataset does not have CF axes")
        if not ds.cf.coordinates:
            raise ValueError("Dataset does not have CF coordinates")
        if not {"X", "Y"} <= ds.cf.axes.keys():
            raise ValueError(f"Dataset must have CF X and Y axes, found: {ds.cf.axes.keys()}")
    
        if not {"latitude", "longitude"} <= ds.cf.coordinates.keys():
            raise ValueError("Dataset must have CF latitude and longitude coordinates, "
                             f"actual: {ds.cf.coordinates.keys()}")
    
        if ds.rio.x_dim is None or ds.rio.y_dim is None:
            raise ValueError("Dataset does not have rioxarray spatial dimensions")
    
        if ds.rio.bounds() is None:
            raise ValueError("Dataset does not have rioxarray bounds")
    
        left, bottom, right, top = ds.rio.bounds()
        if left < -180 or right > 180 or bottom < -90 or top > 90:
            raise ValueError("Dataset bounds are not valid; they must be within [-180, 180] and [-90, 90]")
    
        if ds.rio.resolution() is None:
            raise ValueError("Dataset does not have rioxarray resolution")
    
        if ds.rio.transform() is None:
            raise ValueError("Dataset does not have rioxarray transform")
    
        print("✅ Dataset is compatible with the Planetary Computer tiler API.")
    

GRIB2 시각화

Microsoft Planetary Computer Pro에 수집된 GRIB2 자산은 연결된 인덱스 파일(.idx)이 동일한 Blob Storage 컨테이너에 저장되어 있는 한 탐색기에서 시각화할 수 있습니다. 인덱스 파일은 수집 중에 생성되며 GRIB2 데이터의 최적의 액세스 및 렌더링에 필요합니다.

Zarr 시각화

Zarr 에셋이 Microsoft Planetary Computer Pro에 업로드되면, 렌더링 구성을 통해 options 필드의 sel 파라미터를 사용하여 어떤 변수와 시간 슬라이스를 렌더링할지 지정함으로써 Explorer에서 시각화할 수 있습니다. 이렇게 하지 않으면 탐색기에서 Zarr 저장소의 모든 변수 및 시간 조각을 한 번에 렌더링하려고 하면 탐색기가 충돌합니다.

Zarr 저장소 및 스페이셜 청크의 크기도 성능에 영향을 줍니다. 타일러의 성능을 최적화하려면 Zarr 저장소의 총 크기를 2GB 미만으로 유지하고 각 청크는 100MB 미만을 유지해야 합니다.

데이터 큐브 시각화를 위한 시간 슬라이더

데이터 큐브 자산에 임시 구성 요소가 있는 경우 탐색기의 시간 슬라이더를 사용하여 시간에 따른 변경 내용을 시각화할 수 있습니다. STAC 항목에 time 차원을 가진 자산이 있으며 해당 자산에 extentstep 필드가 포함되어 있는 경우, 시간 슬라이더가 자동으로 표시됩니다.

 [! 참고] 현재 Zarr 자산에 대한 시간 슬라이더 지원을 제공하지 않습니다. 따라서 렌더링 구성에서 시각화할 시간 조각을 지정하는 것이 중요합니다. 이렇게 하지 않으면 탐색기에서 Zarr 저장소의 모든 시간 조각을 한 번에 렌더링하려고 하면 탐색기가 충돌합니다.