애셋 관리

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

디렉터리

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

  • folder_dataprojects/my-project/assets/
    • folder folder-name/
      • photo image-name
      • view_comfy table-name
      • satellite featureview-name
      • bubble_chart 분류자 이름
      • photo_library imagecollection-name/
        • 사진 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

애셋 만들기

폴더와 ImageCollections를 만들고 로컬 파일 또는 Google Cloud Storage 버킷의 파일에서 이미지와 테이블을 처리할 수 있습니다. 지원되는 이미지 형식에는 GeoTIFF (표준 및 COG) 및 TFRecord가 있습니다. 지원되는 테이블 형식에는 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 함수를 사용하여 빈 폴더 또는 ImageCollections를 만듭니다.

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

외부 이미지

Google Cloud Storage 버킷에 업로드하는 클라우드 최적화 GeoTIFF (COG) 파일은 외부 이미지 애셋으로 등록하고 Earth Engine에서 직접 사용할 수 있습니다. COG 지원 애셋 및 매니페스트 구성에 관한 자세한 내용은 참조 문서를 참고하세요.

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

애셋 나열

Python 클라이언트

ee.data.listAssets 함수를 사용하여 폴더 또는 컬렉션의 애셋을 나열합니다 (재귀 아님). 필터링 및 페이지 표시와 관련된 자세한 내용은 참조 문서를 참고하세요.

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

ee.data.listImagesee.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)

코드 편집기

애셋 관리자에서 애셋 위로 마우스 포인터를 가져간 다음 공유 아이콘을 클릭합니다. 대화상자에서 저작물을 공유할 이메일 주소 또는 도메인을 입력한 다음 드롭다운 목록에서 부여할 권한 수준을 선택합니다. 액세스 추가 버튼을 클릭하여 변경사항을 확인합니다. '모든 사용자가 읽을 수 있음' 체크박스를 선택하여 모든 항목에 읽기 권한을 부여합니다. 대화상자의 드롭다운 목록 (활성 Code Editor 프로젝트에서 소유한 애셋)에서 앱 이름을 선택하여 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 클라이언트 또는 Code 편집기를 사용하여 애셋 할당량을 확인합니다.