제퍼넷 로고

Amazon SageMaker 지리 공간적 기능을 사용하여 Gramener의 도시 열섬 이해 및 예측 | 아마존 웹 서비스

시간

이것은 Gramener의 Shravan Kumar와 Avirat S가 공동으로 작성한 게스트 게시물입니다.

문법Straive 농업, 임업, 물관리, 신재생에너지 분야에 중점을 두고 지속가능한 발전에 기여하는 기업입니다. 관계 당국에 환경 및 사회적 영향에 대해 정보에 입각한 결정을 내리는 데 필요한 도구와 통찰력을 제공함으로써 Gramener는 보다 지속 가능한 미래를 구축하는 데 중요한 역할을 하고 있습니다.

도시 열섬(UHI)은 주변 농촌 지역보다 훨씬 더 높은 기온을 경험하는 도시 내의 지역입니다. UHI는 다양한 환경 및 건강 문제를 일으킬 수 있기 때문에 점점 더 우려되고 있습니다. 이러한 문제를 해결하기 위해 Gramener는 공간 데이터와 고급 모델링 기술을 사용하여 다음과 같은 UHI 효과를 이해하고 완화하는 솔루션을 개발했습니다.

  • 온도차 – UHI는 도시 지역을 주변 농촌 지역보다 더 뜨거워지게 할 수 있습니다.
  • 건강에 미치는 영향 – UHI의 기온이 높을수록 열 관련 질병 및 사망자가 10~20% 증가합니다.
  • 에너지 소비 - UHI는 에어컨 수요를 증폭시켜 에너지 소비를 최대 20%까지 급증시킵니다.
  • 대기 질 - UHI는 공기 질을 악화시켜 스모그 및 미립자 물질 수준을 높여 호흡기 문제를 증가시킬 수 있습니다.
  • 경제에 미치는 영향 – UHI는 추가 에너지 비용, 인프라 손상 및 의료 비용으로 수십억 달러를 초래할 수 있습니다.

Gramener의 GeoBox 솔루션은 사용자가 강력한 API를 통해 공공 지리공간 데이터를 손쉽게 활용하고 분석할 수 있도록 지원하여 기존 워크플로우에 원활하게 통합할 수 있도록 해줍니다. 이를 통해 탐색을 간소화하고 귀중한 시간과 자원을 절약하여 커뮤니티가 UHI 핫스팟을 신속하게 식별할 수 있습니다. 그런 다음 GeoBox는 원시 데이터를 래스터, GeoJSON, Excel과 같은 사용자 친화적인 형식으로 제공되는 실행 가능한 통찰력으로 변환하여 UHI 완화 전략을 명확하게 이해하고 즉시 구현하도록 보장합니다. 이를 통해 지역 사회는 정보에 입각한 결정을 내리고 지속 가능한 도시 개발 계획을 구현하여 궁극적으로 공기 질 개선, 에너지 소비 감소, 더 시원하고 건강한 환경을 통해 시민을 지원할 수 있습니다.

이 게시물은 Gramener의 GeoBox 솔루션이 어떻게 사용되는지 보여줍니다. Amazon SageMaker 지리 공간적 기능을 사용합니다. 지구 관측 분석을 수행하고 위성 이미지에서 UHI 통찰력을 얻습니다. SageMaker 지리공간 기능을 사용하면 데이터 과학자와 기계 학습(ML) 엔지니어가 지리공간 데이터를 사용하여 모델을 쉽게 구축, 교육 및 배포할 수 있습니다. SageMaker 지리 공간적 기능을 사용하면 대규모 지리 공간 데이터 세트를 효율적으로 변환하고 강화할 수 있으며 사전 훈련된 ML 모델을 통해 제품 개발 및 통찰력 확보 시간을 가속화할 수 있습니다.

솔루션 개요

Geobox는 공간적 특성을 활용하여 UHI 효과를 분석하고 예측하는 것을 목표로 합니다. 이는 제안된 인프라 및 토지 이용 변화가 UHI 패턴에 어떻게 영향을 미칠 수 있는지 이해하는 데 도움이 되며 UHI에 영향을 미치는 주요 요소를 식별합니다. 이 분석 모델은 세분화된 수준에서 지표면 온도(LST)의 정확한 추정치를 제공하므로 Gramener는 매개변수(사용된 지수 이름 및 데이터 이름)를 기반으로 UHI 효과의 변화를 정량화할 수 있습니다.

Geobox를 사용하면 시 부서에서 다음을 수행할 수 있습니다.

  • 기후 적응 개선 계획 – 정보에 입각한 결정을 내리면 극심한 더위로 인한 영향이 줄어듭니다.
  • 녹지확대 지원 – 녹지 공간이 많아지면 대기 질과 삶의 질이 향상됩니다.
  • 부서 간 협업 강화 – 공동의 노력으로 공공 안전이 향상됩니다.
  • 전략적 비상 대비 – 목표 계획은 비상 사태 가능성을 줄입니다.
  • 의료 서비스 협력 – 협력은 보다 효과적인 건강 개입으로 이어집니다.

솔루션 워크플로

이 섹션에서는 데이터 수집부터 공간 모델링 및 예측에 이르기까지 UHI 솔루션의 핵심 역할을 하는 다양한 구성 요소가 어떻게 함께 작동하는지 논의합니다. 이 솔루션은 캐나다의 한 도시에서 UHI를 해결하는 데 중점을 두고 구조화된 워크플로우를 따릅니다.

1단계: 데이터 파이프라인

Landsat 8 위성은 15일마다 오전 11시 30분에 관심 지역의 상세한 이미지를 캡처하여 도시의 풍경과 환경에 대한 포괄적인 보기를 제공합니다. 줌 레벨 48에서 Mapbox의 Supermercado Python 라이브러리를 사용하여 19미터 그리드 크기의 그리드 시스템을 구축하여 정확한 공간 분석이 가능합니다.

데이터 파이프 라인

2단계: 탐색적 분석

인프라와 인구 데이터 레이어를 통합한 Geobox는 사용자가 도시의 가변 분포를 시각화하고 도시 형태학적 통찰력을 도출할 수 있도록 지원하여 도시의 구조와 개발에 대한 포괄적인 분석을 가능하게 합니다.

또한 1단계의 Landsat 이미지는 일관성과 정확성을 위해 48미터 그리드에 맞게 꼼꼼하게 확장된 데이터를 사용하여 NDVI(Normalized Difference Vegetation Index) 및 NDBI(Normalized Difference Build-up Index)와 같은 통찰력을 도출하는 데 사용됩니다.

탐색적 분석

다음 변수가 사용됩니다.

  • 지표면 온도
  • 건물 현장 적용 범위
  • NDVI
  • 빌딩 블록 적용 범위
  • NDBI
  • 건축 면적
  • 알베도
  • 건물 수
  • 수정된 정규화차수지수(MNDWI)
  • 건물 높이
  • 층수 및 바닥면적
  • 용적률

3단계: 분석 모델

이 단계는 데이터에 ML 모델을 사용하여 LST 및 기타 영향력 있는 요소와의 관계에 대한 통찰력을 얻는 세 가지 모듈로 구성됩니다.

  • 모듈 1: 영역별 통계 및 집계 – 영역 통계는 값 래스터의 값을 사용하여 통계를 계산하는 데 중요한 역할을 합니다. 구역 래스터를 기반으로 각 구역에 대한 통계 데이터를 추출하는 작업이 포함됩니다. 집계는 100미터 해상도로 수행되므로 데이터를 포괄적으로 분석할 수 있습니다.
  • 모듈 2: 공간 모델링 – Gramener는 지표면 온도(LST)와 기타 변수 간의 상관 관계를 밝히기 위해 세 가지 회귀 모델(선형, 공간 및 공간 고정 효과)을 평가했습니다. 이러한 모델 중에서 공간 고정 효과 모델은 특히 2014년부터 2020년까지의 기간 동안 가장 높은 평균 R-제곱 값을 산출했습니다.
  • 모듈 3: 변수 예측 – 단기적인 변수를 예측하기 위해 Gramener는 지수평활 기법을 사용했습니다. 이러한 예측은 미래 LST 값과 추세를 이해하는 데 도움이 되었습니다. 또한 RCP8.5(Representative Concentration Pathway) 데이터를 사용하여 장기간에 걸쳐 LST 값을 예측함으로써 장기적인 규모 분석을 조사했습니다.

분석 모델

데이터 수집 및 전처리

모듈을 구현하기 위해 Gramener는 SageMaker 지리공간 노트북을 사용했습니다. 아마존 세이지 메이커 스튜디오. 지리공간 노트북 커널에는 일반적으로 사용되는 지리공간 라이브러리가 사전 설치되어 있어 Python 노트북 환경 내에서 지리공간 데이터를 직접 시각화하고 처리할 수 있습니다.

Gramener는 LST 추세를 예측하기 위해 건물 평가, 온도 데이터, 위성 이미지 등 다양한 데이터 세트를 사용했습니다. UHI 솔루션의 핵심은 Landsat 8 위성의 데이터를 사용하는 것이었습니다. USGS와 NASA의 합작 투자인 이 지구 이미징 위성은 프로젝트의 기본 구성 요소로 사용되었습니다.

와 더불어 검색래스터데이터수집 API인 SageMaker는 위성 이미지 검색을 용이하게 하기 위해 특별히 제작된 기능을 제공합니다. Gramener는 이 API를 사용하여 UHI 솔루션에 대한 Landsat 8 위성 데이터를 검색했습니다.

XNUMXD덴탈의 SearchRasterDataCollection API는 다음 입력 매개변수를 사용합니다.

  • – 쿼리에 사용된 래스터 데이터 컬렉션의 Amazon 리소스 이름(ARN)
  • 관심 분야 – 관심 영역을 나타내는 GeoJSON 다각형
  • 시간 범위 필터 – 관심 시간 범위는 다음과 같이 표시됩니다. {StartTime: <string>, EndTime: <string>}
  • 속성 필터 – 최대 허용 구름량 사양과 같은 추가 속성 필터도 통합 가능

다음 예에서는 API를 통해 Landsat 8 데이터를 쿼리하는 방법을 보여줍니다.

search_params = {
    "Arn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/gmqa64dcu2g9ayx1", # NASA/USGS Landsat
    "RasterDataCollectionQuery": {
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates": coordinates
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2014-01-01T00:00:00Z",
            "EndTime": "2020-12-31T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 20.0}}}],
            "LogicalOperator": "AND",
        }
    },
}

response = geospatial_client.search_raster_data_collection(**search_params)

대규모 위성 데이터를 처리하기 위해 Gramener는 다음을 사용했습니다. Amazon SageMaker 처리 지리공간 컨테이너를 사용합니다. SageMaker 처리를 사용하면 단일 도시 블록 처리부터 전 세계 규모의 워크로드 관리에 이르기까지 다양한 규모의 작업을 수용할 수 있도록 컴퓨팅 클러스터를 유연하게 확장할 수 있습니다. 전통적으로 이러한 작업을 위해 컴퓨팅 클러스터를 수동으로 생성하고 관리하는 것은 특히 지리공간 데이터 처리에 적합한 환경 표준화와 관련된 복잡성으로 인해 비용과 시간이 많이 소요되었습니다.

이제 SageMaker의 특수 지리공간 컨테이너를 사용하면 지리공간 처리를 위한 클러스터를 관리하고 실행하는 것이 더욱 간단해졌습니다. 이 프로세스에는 최소한의 코딩 노력이 필요합니다. 간단히 작업 부하를 정의하고 지리 공간 데이터의 위치를 ​​지정하면 됩니다. 아마존 단순 스토리지 서비스 (Amazon S3) 적절한 지리공간 컨테이너를 선택합니다. 그런 다음 SageMaker 처리는 필요한 클러스터 리소스를 자동으로 프로비저닝하여 도시 수준에서 대륙 수준에 이르는 규모에서 지리 공간 작업의 효율적인 실행을 촉진합니다.

처리

SageMaker는 처리 작업에 필요한 기본 인프라를 완벽하게 관리합니다. 작업 기간 동안 클러스터 리소스를 할당하고 작업 완료 시 제거합니다. 마지막으로 처리 작업의 결과는 지정된 S3 버킷에 저장됩니다.

지리공간 이미지를 사용하는 SageMaker 처리 작업은 지리공간 노트북 내에서 다음과 같이 구성될 수 있습니다.

from sagemaker import get_execution_role
from sagemaker.sklearn.processing import ScriptProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput

execution_role_arn = get_execution_role()

geospatial_image_uri = '081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest'
processor = ScriptProcessor(
    command=['python3'],
    image_uri=geospatial_image_uri,
    role=execution_role_arn,
    instance_count=20,
    instance_type='ml.m5.xlarge',
    base_job_name='geospatial-processing-spectral-indices'
)

인스턴스_카운트 매개변수는 처리 작업에서 사용해야 하는 인스턴스 수를 정의하고, 인스턴스_유형은 사용해야 하는 인스턴스 유형을 정의합니다.

다음 예제에서는 처리 작업 클러스터에서 Python 스크립트가 실행되는 방법을 보여줍니다. run 명령이 호출되면 클러스터가 시작되고 필요한 클러스터 리소스를 자동으로 프로비저닝합니다.

processor.run(
    code='calculate_variables.py',
    inputs=[
        ProcessingInput(
            source=s3_manifest_url,
            destination='/opt/ml/processing/input_data/',
            s3_data_type="ManifestFile",
            s3_data_distribution_type="ShardedByS3Key"
        ),
    ],
    outputs=[
        ProcessingOutput(
            source='/opt/ml/processing/output_data/',
            destination=s3_output_prefix_url
        )
    ]
)

공간 모델링 및 LST 예측

처리 작업에서는 대기 상단 분광 복사휘도, 밝기 온도, Landsat 8의 반사율을 포함한 다양한 변수가 계산됩니다. 또한 용적률(FAR), 건물 부지 범위, 건물 블록 범위 및 Shannon의 엔트로피 값과 같은 형태학적 변수가 계산됩니다.

다음 코드는 이 대역 산술을 수행하는 방법을 보여줍니다.

def calculate_ndvi(nir08, red): 
    return (nir08 - red) / (nir08 + red) 
 
def calculate_ndbi(swir16, nir08): 
    return (swir16 - nir08) / (swir16 + nir08) 
 
def calculate_st(bt): 
    return ((bt * 0.00341802) + 149.0) - 273 
 
def indices_calc(data): 
    with concurrent.futures.ThreadPoolExecutor() as executor: 
        ndvi_future = executor.submit(calculate_ndvi, data.sel(band="SR_B5"), data.sel(band="SR_B4")) 
        ndbi_future = executor.submit(calculate_ndbi, data.sel(band="SR_B6"), data.sel(band="SR_B5")) 
        st_future = executor.submit(calculate_st, data.sel(band="ST_B10")) 
 
        ndvi = ndvi_future.result() 
        ndbi = ndbi_future.result() 
        st = st_future.result() 
 
    ndvi.attrs = data.attrs 
    ndbi.attrs = data.attrs 
    st.attrs = data.attrs 
 
    return ndvi, ndbi, st 

변수를 계산한 후 구역별 통계를 수행하여 그리드별로 데이터를 집계합니다. 여기에는 각 구역 내의 관심 값을 기반으로 통계를 계산하는 작업이 포함됩니다. 이러한 계산에는 약 100미터의 그리드 크기가 사용되었습니다.

def process_iteration(st, ndvi, ndmi, date, city_name): 
    datacube['st'] = (st.dims, st.values) 
    datacube['ndvi'] = (ndvi.dims, ndvi.values) 
    datacube['ndmi'] = (ndmi.dims, ndmi.values) 
    df = datacube.groupby("id").mean().to_dataframe().reset_index() 
    merged_grid = hexgrid_utm.join(df, on='id', how='left', lsuffix='_')[['id', 'hex_id', 'geometry', 'st', 'ndvi', 'ndmi']] 
    merged_grid.to_file(f"{DATA}/{city_name}/{city_name}_outputs_{date}.geojson", driver='GeoJSON') 
    print("Working on:", date) 
 
def iterative_op(city_json, st, ndvi, ndmi, city_name): 
    with concurrent.futures.ThreadPoolExecutor() as executor: 
        futures = [ 
            executor.submit(process_iteration, st[i], ndvi[i], ndmi[i], date, city_name) 
            for i, _ in enumerate(city_json.time) 
            for date in city_json.date 
        ] 
        for future in concurrent.futures.as_completed(futures): 
            future.result() 
 
    print('Process completed') 

데이터를 취합한 후 공간 모델링을 수행합니다. Gramener는 관측값의 공간 의존성을 설명하기 위해 선형 회귀 및 공간 고정 효과와 같은 공간 회귀 방법을 사용했습니다. 이 접근 방식을 사용하면 미시적 수준에서 변수와 LST 간의 관계를 쉽게 모델링할 수 있습니다.

다음 코드는 이러한 공간 모델링을 실행하는 방법을 보여줍니다.

features = [ 
    'ndvi', 
    'ndbi', 
    'st', 
    'build_count', 
    'bbc' 
] 
 
def compute_spatial_weights(df, k=8): 
    knn = KNN.from_dataframe(df, k=k) 
    return df[features].apply(lambda y: weights.spatial_lag.lag_spatial(knn, y)).rename(columns=lambda c: 'w_' + c) 
 
def ordinary_least_squares(df_year, spatial=False): 
    formula = f"lst ~ {' + '.join(features)}"  
    if spatial: 
        df_year = df_year.join(compute_spatial_weights(df_year)) 
        formula += f" + {' + '.join(['w_' + f for f in features])}"  
     
    return smf.ols(formula, data=df_year).fit() 
 
def process(df, year): 
    df_year = pd.merge(df[df['year'] == year].fillna(0), grids[['idx', 'name']], on='idx') 
    ols_model = ordinary_least_squares(df_year) 
    ols_spatial_model = ordinary_least_squares(df_year, spatial=True) 
    ols_spatial_fe_model = ordinary_least_squares(df_year, spatial=True) 
     
    return { 
        'year': year, 
        'ols_model': ols_model, 
        'ols_spatial_model': ols_spatial_model, 
        'ols_spatial_fe_model': ols_spatial_fe_model, 
        'ols_r2': [ols_model.rsquared, ols_spatial_model.rsquared, ols_spatial_fe_model.rsquared] 
    } 

Gramener는 LST 값을 예측하기 위해 지수평활법을 사용했습니다. 지수평활은 과거 데이터에 가중 평균을 적용하고 시간이 지남에 따라 가중치가 기하급수적으로 감소하는 시계열 예측에 효과적인 방법입니다. 이 방법은 추세와 패턴을 식별하기 위해 데이터를 평활화하는 데 특히 효과적입니다. 지수 평활화를 사용하면 LST 추세를 보다 정확하게 시각화하고 예측할 수 있으므로 과거 패턴을 기반으로 미래 값을 보다 정확하게 예측할 수 있습니다.

예측을 시각화하기 위해 Gramener는 오픈 소스 지리 공간 라이브러리와 함께 SageMaker 지리 공간 노트북을 사용하여 모델 예측을 기본 지도에 오버레이하고 노트북 내에서 직접 계층화된 시각화 지리 공간 데이터 세트를 제공했습니다.

시각화

결론

이 게시물에서는 Gramener가 고객이 지속 가능한 도시 환경을 위해 데이터 기반 결정을 내릴 수 있도록 지원하는 방법을 보여주었습니다. SageMaker를 사용하여 Gramener는 UHI 분석에서 상당한 시간을 절약하여 처리 시간을 몇 주에서 몇 시간으로 단축했습니다. 이러한 신속한 통찰력 생성을 통해 Gramener의 고객은 UHI 완화 전략이 필요한 영역을 정확히 찾아내고, UHI를 최소화하기 위한 도시 개발 및 인프라 프로젝트를 적극적으로 계획하며, 포괄적인 위험 평가를 위한 환경 요인에 대한 전체적인 이해를 얻을 수 있습니다.

SageMaker를 사용하여 지속 가능성 프로젝트에 지구 관측 데이터를 통합할 수 있는 가능성을 알아보세요. 자세한 내용은 다음을 참조하세요. Amazon SageMaker 지리공간 기능 시작하기.


저자에 관하여

아비셰크 미탈 Amazon Web Services(AWS)의 전 세계 공공 부문 팀을 위한 솔루션 설계자로서 그는 주로 업계 전반의 ISV 파트너와 협력하여 확장 가능한 아키텍처를 구축하고 AWS 서비스 채택을 촉진하기 위한 전략을 구현하기 위한 아키텍처 지침을 제공합니다. 그는 클라우드에서 기존 플랫폼과 보안을 현대화하는 데 열정을 쏟고 있습니다. 직장 밖에서 그는 여행을 좋아합니다.

야노슈 보쉬츠 AI/ML을 전문으로 하는 AWS의 수석 솔루션 아키텍트입니다. 15년 이상의 경험을 보유한 그는 혁신적인 솔루션을 위해 AI 및 ML을 활용하고 AWS에서 ML 플랫폼을 구축하는 과정에서 전 세계 고객을 지원합니다. 그의 전문 지식은 기계 학습, 데이터 엔지니어링, 확장 가능한 분산 시스템에 걸쳐 있으며, 소프트웨어 엔지니어링에 대한 탄탄한 배경과 자율 주행과 같은 분야의 업계 전문 지식으로 강화되었습니다.

슈라반 쿠마르 그는 비즈니스 분석, 데이터 전도 및 심층적인 고객 관계 구축 분야에서 10년 간의 경험을 보유한 Gramener의 고객 성공 담당 수석 이사입니다. 그는 데이터 분석, AI 및 ML 영역 내에서 고객 관리, 계정 관리 분야의 탄탄한 기반을 보유하고 있습니다.

아비라트 S Gramener의 지리공간 데이터 과학자로서 AI/ML을 활용하여 지리 데이터에서 통찰력을 얻습니다. 그의 전문 분야는 재난 관리, 농업, 도시 계획 분야이며, 그의 분석은 의사 결정 과정에 영향을 미칩니다.

spot_img

최신 인텔리전스

spot_img