Отображение определенной страны в пакете Cartopy, Python - PullRequest
0 голосов
/ 18 апреля 2020

Я начинаю с пакета Cartopy для Python. Я хотел бы отобразить карту Венгрии с помощью пакета Cartopy. Я использую следующий код.

import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt


def main():
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
    ax.set_extent([20, 10, 20, 30], crs=ccrs.PlateCarree())

    ax.add_feature(cfeature.LAND)
    ax.add_feature(cfeature.OCEAN)
    ax.add_feature(cfeature.COASTLINE)
    ax.add_feature(cfeature.BORDERS)
    ax.add_feature(cfeature.LAKES, alpha=1, color="blue")
    ax.add_feature(cfeature.RIVERS)

    plt.show()


if __name__ == "__main__":
    main()

Чего я не понимаю, так это как работают координаты в ax.set_extent([5, 16, 46.5, 56]. Это координаты Германии, я нашел их в сети. Я посмотрел долготу / широту для Германии, и эти цифры в коде не имеют к ним никакого отношения. Я был бы рад, если бы кто-то мог объяснить эти координаты и дать координаты для Венгрии. Спасибо.

1 Ответ

0 голосов
/ 18 апреля 2020

Я понял это. Изображение, которое можно создать с помощью приведенного ниже кода, показывает долготу / с отрицательным / положительным. ax.set_extent([x_0, x_1, y_0, y_1] сначала определяет параллельный диапазон x, а затем параллельный диапазон y.

import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
plt.figure(figsize=(18, 12))
map = plt.axes(projection=ccrs.PlateCarree())
grid_lines = map.gridlines(draw_labels=True)
map.coastlines()
...