2017-04-27 1 views
0

존재하는 일부 데이터를 매트릭스 예 : 온도로 플롯하려고합니다. 이 데이터는 지역적 데이터이므로 전체 지구의지도가 필요하지 않습니다.cartopy에서 mercator 투영에 대한 종단 범위 정의

제가있다 : 데이터 (MXN)의

  1. 매트릭스 I 그것이 함께 cartopy하여 플롯하고자

(NX1) 위도 (MX1)와 경도를 형성

  • 벡터 메카 토르 투영. 그러나 mercator는 min과 max lat를 정의 할 수는 있지만 min과 max lon은 정의 할 수 없습니다. 이것은 나에게 땅의 넓은 길쭉한 조각을주는 것을 끝낸다.

    Mercator(central_longitude=103.0,min_latitude=gridlat[0],max_latitude=gridlat[-1]) 
    

    해안지도의 최소 및 최대 경도를 설정하는 방법은 무엇입니까? 궁극적으로, ncview를 사용하는 방법처럼 국가 테두리를 겹쳐서 데이터를 플롯하려고합니다.

  • 답변

    2

    일반적으로 영사를 선택할 때지도의 범위를 설정하지 않으므로 나중에 축의 set_extent 방법으로 설정할 수 있습니다. 실제로 Cartopy의 기본 동작은 플롯 된 데이터에 범위를 맞추는 것이므로 일반 Mercator 투영법을 사용하여 플롯을 만들 때 수행해야하는 작업이 무엇인지 확인해야합니다.

    import cartopy.crs as ccrs 
    import matplotlib.pyplot as plt 
    
    # Create Mercator projection with dateline in the middle: 
    ax = plt.axes(projection=ccrs.Mercator(central_longitude=180)) 
    # Draw coastlines so we know where we are: 
    ax.coastlines() 
    # Set the map extent, making sure to specify the correct coordinate system 
    # for geographical coordinates: 
    ax.set_extent([90, 270, -40, 40], crs=ccrs.PlateCarree()) 
    plt.show() 
    
    돌기가 정의되는 이유
    +0

    ax.set_extent의 ccrs.PlateCaree() : 여기에서 명시 적으로 지리적 좌표 범위를 설정하는 예이다? 대신 메르카토르일까요? – user2118915

    +1

    아니요, 수치 범위를 제공하는 좌표계 여야합니다.이 경우 위도/경도 좌표로지도 범위를 지정하므로 'PlateCarree'가 적절한 선택입니다. 'Mercator'를 사용했다면 메르카토르 투영법의 네이티브 좌표로 범위를 지정해야합니다. – ajdawson

    +0

    @ user2118915 효과가있는 경우 대답을 "수락"하십시오. 감사. – pelson

    관련 문제