애셋 관리

Earth Engine 애셋은 플랫폼 내에 저장된 프로젝트 소유 지리 공간 데이터입니다. 자체 데이터를 업로드하고 Earth Engine 분석에서 생성된 데이터를 애셋으로 저장할 수 있습니다.

애셋 유형

Earth Engine은 다양한 데이터 유형에 맞는 다양한 애셋 형식과 정리를 위한 컨테이너 요소를 제공합니다.

애셋 유형
Image 래스터: 지리 정보를 그리드 기반으로 표현한 것으로, 그리드의 각 셀은 지구 표면의 특정 위치에 해당하는 값을 보유합니다.
ImageCollection 모자이크 또는 시계열을 구성하는 관련 래스터 이미지의 모음입니다. 기능적으로는 폴더와 유사하지만 필터링 및 분석을 위한 메서드 집합이 포함된 ee.ImageCollection 객체로 Earth Engine에 가져올 수 있습니다.
Table 벡터 특성(행)으로 구성된 테이블 데이터 구조로, 각 행에는 일련의 속성(열)이 포함됩니다. 이는 필터링 및 분석을 위한 메서드 집합이 포함된 ee.FeatureCollection 객체로 표현됩니다.
Classifier 학습된 Earth Engine 머신러닝 모델 이는 적용 및 분석을 위한 메서드 집합이 포함된 ee.Classifier 객체로 표현됩니다.
FeatureView Earth Engine 앱에서 사용할 테이블의 시각화 뷰입니다.
Folder 정리를 지원하는 애셋 및 추가 폴더의 컨테이너입니다.

애셋 구성

Earth Engine 애셋은 폴더 및 컬렉션의 계층적 시스템으로 구성됩니다. 구조는 일반적인 파일 시스템과 유사합니다.

루트

애셋은 Cloud 프로젝트에서 소유합니다. 프로젝트 이름은 assets 디렉터리의 루트를 정의합니다. 예를 들어 my-project의 루트는 projects/my-project/assets입니다. my-project에 속하는 모든 애셋은 projects/my-project/assets 폴더 또는 그 안의 하위 폴더(또는 ImageCollection)에 있습니다.

디렉터리

Earth Engine은 애셋을 정리하기 위해 트리와 같은 디렉터리 구조를 사용합니다. 각 Cloud 프로젝트에는 개별 애셋과 폴더를 포함할 수 있는 루트 디렉터리가 있습니다. ImageCollection은 시계열 또는 모자이크와 같은 관련 이미지 집합을 보유하도록 특별히 설계된 특수 애셋 유형입니다. 폴더와 달리 ImageCollection에는 이미지 애셋만 포함할 수 있으며 다른 폴더나 컬렉션을 중첩할 수 없습니다.

  • folder_dataprojects/my-project/assets/
    • folder folder-name/
      • photo image-name
      • view_comfy table-name
      • satellite featureview-name
      • bubble_chart classifier-name
      • photo_library imagecollection-name/
        • photo image-name-1
        • photo image-name-2

저작물 ID

Earth Engine은 저작물 ID를 사용하여 스크립트와 명령줄 작업 모두에서 데이터를 참조합니다. 디렉터리 간 구분자로 슬래시(/)를 사용하여 애셋 위치를 정의합니다. 예를 들어 projects/my-project/assets/my-asset는 'my-project' 루트에 있는 'my-asset'이라는 애셋을 지정합니다. 다음은 이 ID를 사용하여 저작물에 대한 정보를 가져오는 예시입니다.

Python

print(ee.data.getAsset('projects/my-project/assets/my-asset'))

코드 편집기

print(ee.Image('projects/my-project/assets/my-asset'))

명령줄

earthengine asset info projects/my-project/assets/my-asset

애셋 만들기

폴더와 ImageCollection을 만들고 로컬 파일 또는 Google Cloud Storage 버킷의 파일에서 이미지와 테이블을 수집할 수 있습니다. 지원되는 이미지 형식에는 GeoTIFF 및 TFRecord가 포함됩니다. Cloud Storage의 Cloud Optimized GeoTIFF(COG)도 처리하는 대신 제자리에서 등록할 수 있습니다. 지원되는 테이블 형식에는 Shapefile 및 CSV가 포함됩니다. (애셋은 일괄 함수 Export.*.toAsset를 사용하여 Earth Engine 분석 결과를 내보내기하여 만들 수도 있습니다.)

Python 클라이언트

이미지

ee.data.startIngestion 함수를 사용하여 Cloud Storage에서 이미지를 수집합니다. 업로드 구성에 대한 자세한 내용은 이미지 매니페스트 페이지를 참조하세요.

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'tilesets': [
    {
      'sources': [
        {
          'uris': [
            'gs://my-bucket/filename.tif'
          ]
        }
      ]
    }
  ]
}
ee.data.startIngestion(None, manifest)

테이블

ee.data.startTableIngestion 함수를 사용하여 Cloud Storage에서 테이블을 수집합니다. 업로드 구성에 대한 자세한 내용은 이미지 매니페스트 페이지를 참조하세요.

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'sources': [
    {
      'uris': [
        'gs://my-bucket/filename.csv'
      ]
    }
  ]
}
ee.data.startTableIngestion(None, manifest)

폴더 또는 ImageCollection

ee.data.createAsset 함수를 사용하여 빈 폴더 또는 ImageCollection을 만듭니다.

ee.data.createAsset(
    {'type': 'FOLDER'}, # or 'IMAGE_COLLECTION'
    'projects/my-project/assets/asset-name'
)

코드 편집기

애셋 관리자에서 새로 만들기 버튼을 클릭하고 드롭다운 목록에서 업로드하거나 만들려는 애셋 유형을 선택합니다. 대화상자에서 애셋 업로드 또는 생성을 구성합니다.

명령줄

이미지 또는 표

earthengine upload image --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.tif
earthengine upload table --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.csv

폴더 또는 ImageCollection

earthengine create 명령어를 사용하여 빈 폴더 또는 ImageCollections를 만듭니다.

earthengine create folder projects/my-project/assets/folder-name
earthengine create collection projects/my-project/assets/collection-name

외부 이미지

Cloud Storage 버킷의 Cloud Optimized GeoTIFF(COG) 파일을 COG 지원 애셋(API에서는 외부 이미지라고 함)으로 등록하고 Earth Engine에서 직접 사용할 수 있습니다. 매니페스트를 구성하는 방법은 COG 등록 가이드를 참고하세요.

earthengine upload external_image --manifest /tmp/foo.json

애셋 나열

Python 클라이언트

ee.data.listAssets 함수를 사용하여 폴더 또는 컬렉션의 애셋을 나열합니다(재귀적이지 않음). 필터링 및 페이지 매김에 대한 자세한 내용은 참조 문서를 확인하세요.

ee.data.listAssets('projects/my-project/assets')

ee.data.listImages 및 ee.data.listFeatures도 참고하세요.

코드 편집기

애셋 관리자에서 폴더를 펼쳐 애셋을 확인합니다.

명령줄

earthengine ls 명령어를 사용하여 폴더 또는 컬렉션의 애셋을 나열합니다(재귀적이지 않음). 나열할 애셋 수와 반환할 세부정보 양을 제한하는 방법에 대한 자세한 내용은 참조 문서를 확인하세요.

earthengine ls projects/my-project/assets

애셋 권한 설정

Python 클라이언트

ee.data.setAssetAcl 함수를 사용하여 애셋에 대한 권한을 설정합니다.

asset_id = 'projects/my-project/assets/asset-name'
acl_update = {
    'owners': [
        'user:big_cheese@example.com',
        'user:el_jefe@example.com'
    ],
    'writers': [
        'user:romeo@example.com',
        'user:juliet@example.com'
    ],
    'readers': [
        'group:some-group@googlegroups.com',
        'domain:example.com',
        'serviceAccount:some-project-id@appspot.gserviceaccount.com'
    ],
    'all_users_can_read': False
}
ee.data.setAssetAcl(asset_id, acl_update)

코드 편집기

애셋 관리자에서 애셋 위로 마우스 포인터를 가져간 후 공유 아이콘을 클릭합니다. 대화상자에서 애셋을 공유할 이메일 주소 또는 도메인을 입력한 후 드롭다운 목록에서 부여할 권한 수준을 선택합니다. 액세스 추가 버튼을 클릭하여 변경사항을 확인합니다. '모든 사용자가 읽을 수 있음' 체크박스를 선택하여 모든 항목에 읽기 권한을 부여합니다. 드롭다운 목록(활성 코드 편집기 프로젝트가 소유한 애셋)에서 앱 이름을 선택하여 대화상자에서 Earth Engine 앱에 대한 액세스 권한을 제공할 수도 있습니다.

명령줄

earthengine acl set 명령어를 사용하여 애셋의 읽기 액세스 권한을 public 또는 private로 설정합니다.

earthengine acl set public projects/my-project/assets/asset-name

earthengine acl ch 명령어를 사용하여 애셋 읽기 및 쓰기에 대한 개별 권한을 설정합니다.

earthengine acl ch -u person@gmail.com:R projects/my-project/assets/asset-name

자세한 내용은 명령줄 참조 페이지를 확인하세요.

저작물 권한 확인

Python 클라이언트

ee.data.getAssetAcl 함수를 사용하여 애셋의 액세스 제어 목록을 가져옵니다.

ee.data.getAssetAcl('projects/my-project/assets/asset-name')

코드 편집기

애셋 관리자에서 애셋 위로 마우스 포인터를 가져간 후 공유 아이콘을 클릭합니다. 대화상자에는 이메일 및 도메인 목록과 해당 액세스 수준이 표시됩니다.

명령줄

earthengine acl get 명령어를 사용하여 애셋의 액세스 제어 목록을 가져옵니다.

earthengine acl get projects/my-project/assets/asset-name

애셋 복사

Python 클라이언트

ee.data.copyAsset 함수를 사용하여 애셋을 복사합니다.

ee.data.copyAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/asset-copy-name')

코드 편집기

Python 클라이언트 또는 명령줄 도구를 사용하여 애셋을 복사합니다.

명령줄

earthengine cp 명령어를 사용하여 애셋을 복사합니다.

earthengine cp projects/my-project/assets/asset-name projects/my-project/assets/asset-copy-name

애셋 이동 또는 이름 바꾸기

Python 클라이언트

ee.data.renameAsset 함수를 사용하여 애셋을 이동하거나 이름을 바꿉니다.

ee.data.renameAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/new-asset-name')

코드 편집기

이동

애셋 관리자에서 애셋을 새 폴더로 드래그합니다.

이름 바꾸기

애셋 관리자에서 애셋 위로 포인터를 가져가고 수정 아이콘을 클릭한 후 수정 가능한 입력 필드에 새 이름을 입력합니다.

명령줄

earthengine mv 명령어를 사용하여 애셋을 이동하거나 이름을 바꿉니다.

earthengine mv projects/my-project/assets/asset-name projects/my-project/assets/new-asset-name

애셋 삭제

Python 클라이언트

ee.data.deleteAsset 함수를 사용하여 애셋을 삭제합니다.

ee.data.deleteAsset('projects/my-project/assets/asset-name')

코드 편집기

애셋을 클릭하여 애셋 대화상자 페이지를 연 다음 삭제 버튼을 클릭합니다.

명령줄

earthengine rm 명령어를 사용하여 애셋을 삭제합니다. 재귀 및 드라이 런 옵션은 함수 참조를 확인하세요.

earthengine rm projects/my-project/assets/asset-name

저작물 메타데이터 보기

Python 클라이언트

ee.data.getAsset 함수를 사용하여 애셋 메타데이터를 가져옵니다.

ee.data.getAsset('projects/my-project/assets/asset-name')

코드 편집기

애셋을 클릭하여 애셋 대화상자 페이지를 엽니다. 애셋 정보를 확인합니다.

명령줄

earthengine asset info 명령어를 사용하여 애셋 메타데이터를 가져옵니다.

earthengine asset info projects/my-project/assets/asset-name

저작물 메타데이터 설정

다음 저작물 메타데이터를 설정할 수 있습니다.

  • start_time
  • end_time
  • properties

Python 클라이언트

ee.data.updateAsset 함수를 사용하여 저작물 메타데이터를 업데이트합니다.

asset_id = 'projects/my-project/assets/asset-name'
new_metadata = {
  'properties': {
    'name': 'value'
  },
  'start_time': '2024-10-02T15:01:24Z',
  'end_time': '2024-10-02T15:01:25Z',
}
update_these = ['start_time', 'end_time', 'properties']

ee.data.updateAsset(asset_id, new_metadata, update_these)

코드 편집기

애셋을 클릭하여 애셋 대화상자 페이지를 연 다음 오른쪽 상단에서 수정 전환 버튼을 활성화합니다. 설명, 속성, 시작일, 종료일을 수정할 수 있습니다. 수정 전환 버튼을 비활성화하여 변경사항을 저장합니다.

명령줄

earthengine asset set 명령어를 사용하여 저작물 메타데이터를 업데이트합니다. 자세한 내용은 참조 문서를 확인하세요.

earthengine asset set \
  --time_start 2024-10-02T15:01:24 \
  --time_end 2024-10-02T15:01:25 \
  --property 'name=value' \
  projects/my-project/assets/asset-name

애셋 할당량 확인

할당량은 프로젝트 수준에서 적용됩니다. 사용량 및 할당량 한도 페이지에서 애셋 할당량에 대해 자세히 알아보세요.

Python 클라이언트

ee.data.getAssetRootQuota 함수를 사용하여 애셋 루트의 스토리지 한도 사용량을 가져옵니다.

ee.data.getAssetRootQuota('projects/my-project/assets')

코드 편집기

애셋 관리자에서 프로젝트 루트 위로 포인터를 가져가 data_usage 아이콘을 클릭합니다. 정보 대화상자가 표시됩니다.

명령줄

Python 클라이언트 또는 코드 편집기를 사용하여 애셋 할당량을 확인합니다.