Crie um Job de observação da Terra usando um notebook Amazon SageMaker Studio Classic com uma imagem SageMaker geoespacial - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie um Job de observação da Terra usando um notebook Amazon SageMaker Studio Classic com uma imagem SageMaker geoespacial

Para usar um notebook SageMaker Studio Classic com uma imagem SageMaker geoespacial:

  1. No Inicializador, escolha Alterar ambiente em Cadernos e recursos de computação.

  2. Em seguida, o diálogo Alterar ambiente é aberto.

  3. Selecione a lista suspensa Imagem e escolha ou Geoespacial 1.0. O tipo de instância deve ser ml.geospatial.interactive. Não altere os valores padrão das outras configurações.

  4. Escolha Selecionar.

  5. Escolha Criar caderno.

Você pode iniciar um EOJ usando um notebook Amazon SageMaker Studio Classic com uma imagem SageMaker geoespacial usando o código fornecido abaixo.

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

O exemplo a seguir mostra como criar um EOJ na região Oeste dos EUA (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, )

Depois que seu EOJ for criado, o Arn será devolvido a você. Você usa o Arn para identificar um trabalho e realizar outras operações. Para obter o status de uma tarefa, você pode executar sg_client.get_earth_observation_job(Arn = response['Arn']).

O exemplo a seguir mostra como consultar o status de um EOJ até que seja concluído.

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

Depois que o EOJ for concluído, você poderá visualizar as saídas do EOJ diretamente no caderno. O exemplo a seguir mostra como um mapa interativo pode ser renderizado.

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

O exemplo a seguir mostra como o mapa pode ser centralizado em uma área de interesse e a entrada e saída do EOJ podem ser renderizadas como camadas separadas dentro do mapa.

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

Você pode usar a função export_earth_observation_job para exportar os resultados do EOJ para o bucket do Amazon S3. A função de exportação facilita o compartilhamento dos resultados entre as equipes. SageMaker também simplifica o gerenciamento do conjunto de dados. Podemos simplesmente compartilhar os resultados do EOJ usando o ARN do trabalho, em vez de rastrear milhares de arquivos no bucket do S3. Cada EOJ se torna um ativo no catálogo de dados, pois os resultados podem ser agrupados por ARN do trabalho. O exemplo a seguir mostra como exportar os resultados de um 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, )

Monitore o status da tarefa de exportação usando o seguinte trecho de código.

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

As taxas de armazenamento não são cobradas após a exclusão do EOJ.

Para ver um exemplo que mostra como executar um EOJ, consulte esta postagem no blog.

Para obter mais exemplos de notebooks sobre recursos SageMaker geoespaciais, consulte este GitHub repositório.