기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SageMaker 지리 공간 이미지가 있는 Amazon SageMaker Studio Classic 노트북을 사용하여 지구 관찰 작업 생성
SageMaker Studio Classic 노트북을 SageMaker 지리 공간 이미지와 함께 사용하려면:
런처의 노트북 및 컴퓨팅 리소스에서 환경 변경을 선택합니다.
다음으로 환경 변경 대화 상자가 열립니다.
이미지 드롭다운을 선택하고 지리 공간 1.0을 선택합니다. 인스턴스 유형은 ml.geospatial.interactive이어야 합니다. 다른 설정의 기본값을 변경하지 마세요.
선택을 선택하세요.
노트북 생성을 선택합니다.
아래에 제공된 코드를 EOJ 사용하여 SageMaker 지리 공간 이미지가 있는 Amazon SageMaker Studio Classic 노트북을 사용하여 를 시작할 수 있습니다.
import boto3 import sagemaker import sagemaker_geospatial_map session = boto3.Session() execution_role = sagemaker.get_execution_role() sg_client = session.client(service_name="sagemaker-geospatial")
다음은 미국 서부(오레곤) 리전에서 EOJ 를 생성하는 방법을 보여주는 예제입니다.
#Query and Access Data search_rdc_args = { "Arn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8", # sentinel-2 L2A COG "RasterDataCollectionQuery": { "AreaOfInterest": { "AreaOfInterestGeometry": { "PolygonGeometry": { "Coordinates": [ [ [-114.529, 36.142], [-114.373, 36.142], [-114.373, 36.411], [-114.529, 36.411], [-114.529, 36.142], ] ] } } }, "TimeRangeFilter": { "StartTime": "2021-01-01T00:00:00Z", "EndTime": "2022-07-10T23:59:59Z", }, "PropertyFilters": { "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}], "LogicalOperator": "AND", }, "BandFilter": ["visual"], }, } tci_urls = [] data_manifests = [] while search_rdc_args.get("NextToken", True): search_result = sg_client.search_raster_data_collection(**search_rdc_args) if search_result.get("NextToken"): data_manifests.append(search_result) for item in search_result["Items"]: tci_url = item["Assets"]["visual"]["Href"] print(tci_url) tci_urls.append(tci_url) search_rdc_args["NextToken"] = search_result.get("NextToken") # Perform land cover segmentation on images returned from the sentinel dataset. eoj_input_config = { "RasterDataCollectionQuery": { "RasterDataCollectionArn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8", "AreaOfInterest": { "AreaOfInterestGeometry": { "PolygonGeometry": { "Coordinates": [ [ [-114.529, 36.142], [-114.373, 36.142], [-114.373, 36.411], [-114.529, 36.411], [-114.529, 36.142], ] ] } } }, "TimeRangeFilter": { "StartTime": "2021-01-01T00:00:00Z", "EndTime": "2022-07-10T23:59:59Z", }, "PropertyFilters": { "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}], "LogicalOperator": "AND", }, } } eoj_config = {"LandCoverSegmentationConfig": {}} response = sg_client.start_earth_observation_job( Name="lake-mead-landcover", InputConfig=eoj_input_config, JobConfig=eoj_config, ExecutionRoleArn=execution_role, )
EOJ 이 생성되면 Arn
가 반환됩니다. Arn
를 사용하여 작업을 식별하고 추가 작업을 수행할 수 있습니다. sg_client.get_earth_observation_job(Arn = response['Arn'])
를 실행하여 작업의 상태를 가져오면 됩니다.
다음 예제에서는 가 완료될 EOJ 때까지 상태를 쿼리하는 방법을 보여줍니다.
eoj_arn = response["Arn"] job_details = sg_client.get_earth_observation_job(Arn=eoj_arn) {k: v for k, v in job_details.items() if k in ["Arn", "Status", "DurationInSeconds"]} # List all jobs in the account sg_client.list_earth_observation_jobs()["EarthObservationJobSummaries"]
EOJ 이 완료되면 노트북에서 직접 EOJ 출력을 시각화할 수 있습니다. 다음 예시에서는 대화형 맵을 렌더링하는 방법을 보여줍니다.
map = sagemaker_geospatial_map.create_map({ 'is_raster': True }) map.set_sagemaker_geospatial_client(sg_client) # render the map map.render()
다음 예제에서는 맵을 관심 영역에 집중하는 방법과 의 입력 및 출력을 맵 내에서 별도의 계층으로 렌더링EOJ할 수 있는 방법을 보여줍니다.
# visualize the area of interest config = {"label": "Lake Mead AOI"} aoi_layer = map.visualize_eoj_aoi(Arn=eoj_arn, config=config) # Visualize input. time_range_filter = { "start_date": "2022-07-01T00:00:00Z", "end_date": "2022-07-10T23:59:59Z", } config = {"label": "Input"} input_layer = map.visualize_eoj_input( Arn=eoj_arn, config=config, time_range_filter=time_range_filter ) # Visualize output, EOJ needs to be in completed status. time_range_filter = { "start_date": "2022-07-01T00:00:00Z", "end_date": "2022-07-10T23:59:59Z", } config = {"preset": "singleBand", "band_name": "mask"} output_layer = map.visualize_eoj_output( Arn=eoj_arn, config=config, time_range_filter=time_range_filter )
export_earth_observation_job
함수를 사용하여 EOJ 결과를 Amazon S3 버킷으로 내보낼 수 있습니다. 내보내기 함수를 사용하면 팀 간에 결과를 편리하게 공유할 수 있습니다. SageMaker 또한 데이터 세트 관리를 간소화합니다. S3 버킷에서 수천 개의 파일을 크롤링하는 ARN대신 작업을 사용하여 EOJ 결과를 공유할 수 있습니다. 결과는 작업별로 그룹화할 수 있으므로 각 EOJ는 데이터 카탈로그의 자산이 됩니다ARN. 다음 예제에서는 의 결과를 내보내는 방법을 보여줍니다EOJ.
sagemaker_session = sagemaker.Session() s3_bucket_name = sagemaker_session.default_bucket() # Replace with your own bucket if needed s3_bucket = session.resource("s3").Bucket(s3_bucket_name) prefix = "eoj_lakemead" # Replace with the S3 prefix desired export_bucket_and_key = f"s3://{s3_bucket_name}/{prefix}/" eoj_output_config = {"S3Data": {"S3Uri": export_bucket_and_key}} export_response = sg_client.export_earth_observation_job( Arn=eoj_arn, ExecutionRoleArn=execution_role, OutputConfig=eoj_output_config, ExportSourceImages=False, )
다음 스니펫을 사용하여 내보내기 작업의 상태를 모니터링할 수 있습니다.
# Monitor the export job status export_job_details = sg_client.get_earth_observation_job(Arn=export_response["Arn"]) {k: v for k, v in export_job_details.items() if k in ["Arn", "Status", "DurationInSeconds"]}
를 삭제한 후에는 스토리지 요금이 부과되지 않습니다EOJ.
를 실행하는 방법을 보여주는 예는 이 블로그 게시물을
SageMaker 지리 공간 기능에 대한 자세한 노트북 예제는 이 GitHub 리포지토리를