Buat Pekerjaan Pengamatan Bumi Menggunakan Notebook Amazon SageMaker Studio Classic dengan Gambar SageMaker geospasial - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat Pekerjaan Pengamatan Bumi Menggunakan Notebook Amazon SageMaker Studio Classic dengan Gambar SageMaker geospasial

Untuk menggunakan notebook SageMaker Studio Classic dengan gambar SageMaker geospasial:

  1. Dari Peluncur, pilih Ubah lingkungan di bawah Notebook dan hitung sumber daya.

  2. Selanjutnya, dialog Ubah lingkungan terbuka.

  3. Pilih dropdown Gambar dan pilih Geospatial 1.0. Tipe Instance harus ml.geospatial.interactive. Jangan mengubah nilai default untuk pengaturan lain.

  4. Pilih Pilih.

  5. Pilih Buat Notebook.

Anda dapat memulai EOJ menggunakan notebook Amazon SageMaker Studio Classic dengan gambar SageMaker geospasial menggunakan kode yang disediakan di bawah ini.

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")

Berikut ini adalah contoh yang menunjukkan cara membuat EOJ di Wilayah Barat AS (Oregon).

#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, )

Setelah EOJ Anda dibuat, EOJ Arn dikembalikan kepada Anda. Anda menggunakan Arn untuk mengidentifikasi pekerjaan dan melakukan operasi lebih lanjut. Untuk mendapatkan status pekerjaan, Anda bisa larisg_client.get_earth_observation_job(Arn = response['Arn']).

Contoh berikut menunjukkan bagaimana untuk query status EOJ sampai selesai.

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"]

Setelah EOJ selesai, Anda dapat memvisualisasikan output EOJ langsung di notebook. Contoh berikut menunjukkan kepada Anda bagaimana peta interaktif dapat dirender.

map = sagemaker_geospatial_map.create_map({ 'is_raster': True }) map.set_sagemaker_geospatial_client(sg_client) # render the map map.render()

Contoh berikut menunjukkan bagaimana peta dapat dipusatkan pada area yang diinginkan dan input dan output dari EOJ dapat dirender sebagai lapisan terpisah dalam peta.

# 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 )

Anda dapat menggunakan export_earth_observation_job fungsi untuk mengekspor hasil EOJ ke bucket Amazon S3 Anda. Fungsi ekspor membuatnya nyaman untuk berbagi hasil di seluruh tim. SageMaker juga menyederhanakan manajemen dataset. Kami cukup membagikan hasil EOJ menggunakan pekerjaan ARN, alih-alih merayapi ribuan file di bucket S3. Setiap EOJ menjadi aset dalam katalog data, karena hasilnya dapat dikelompokkan berdasarkan pekerjaan ARN. Contoh berikut menunjukkan bagaimana Anda dapat mengekspor hasil 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, )

Anda dapat memantau status pekerjaan ekspor Anda menggunakan cuplikan berikut.

# 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"]}

Anda tidak dikenakan biaya penyimpanan setelah Anda menghapus EOJ.

Untuk contoh yang menampilkan cara menjalankan EOJ, lihat posting blog ini.

Untuk contoh notebook lainnya tentang kemampuan SageMaker geospasial, lihat repositori iniGitHub .