Нанесение точек на автономную карту в Python

Я использую Spyder, и у меня есть пара координат, которые я хочу нанести на карту мира. Сейчас я использую Folium, сохраняю данные в виде HTML-файла, а затем открываю его в веб-браузере. У меня вопрос: можно ли нанести координаты на карту без использования веб-браузера? Или что-нибудь внешнее в этом отношении? Я надеялся, что появится пакет, который позволит мне построить все на графике и увидеть это в самом Spyder.

Есть ли у кого-нибудь идеи?

Можете ли вы сохранить данные в формате, отличном от HTML?

mkrieger1 14.06.2024 22:10
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ознакомьтесь с модулем cartopy, который предоставляет множество картографических проекций, а также возможность улучшить вашу проекцию с помощью многочисленных функций (например, суши, океанов, береговых линий, границ и т. д.)

Скорее всего, он не будет в вашем дистрибутиве Python, поэтому установите его с помощью

pip install cartopy

вам также понадобится matplotlib.pyplot, но, поскольку вы уже строите заговор, я предполагаю, что он у вас есть.

Он работает путем выбора проекции (CRS - система координат) для вашей карты (например, Меркатор, Платт Карре (плоская пластина - в основном прямоугольная) и т. д.). Затем выберите crs, соответствующий вашим данным. Основной процесс

  • создать набор осей с нужной картой crs
  • добавьте любые функции, которые вы хотите, к этим осям
  • установите экстент (мин/макс долгота и мин/макс широта) карты для отображения
  • наконец, используйте любую из функций maplotlib.pyplot для построения данных по этим осям.

Вот простой пример построения 4 местоположений долгота/широта в Африке с использованием диаграммы рассеяния пар долгота/широта.

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


map_crs = ccrs.PlateCarree()
data_crs = ccrs.PlateCarree()


def fancify(axes):
    """add features to cartopy axes"""
    axes.stock_img()
    axes.add_feature(cartopy.feature.LAND)
    axes.add_feature(cartopy.feature.OCEAN)
    axes.add_feature(cartopy.feature.COASTLINE)
    axes.add_feature(cartopy.feature.BORDERS, linestyle='-', alpha=.5)
    axes.add_feature(cartopy.feature.LAKES, alpha=0.95)
    axes.add_feature(cartopy.feature.RIVERS)

ax1 = plt.subplot(1, 1, 1, projection=map_crs)  # create map axes
fancify(ax1)                                    # add some features to map
ax1.set_extent([0, 60, 0, 60], map_crs)         # min/max long and lat

ax1.scatter([22, 11, 31, 30,], [8, 22, 13, 9])  # longitutes , latitudes
plt.show()

Спасибо! Какая система координат здесь используется? Сейчас они у меня полукруги, но могут быстро перемещаться в градусы.

Ganesh Gebhard 16.06.2024 01:01

система координат в примере — градусы долготы и широты. поскольку ответ был для вас полезен, не могли бы вы отметить его как принятый?

quizdog 17.06.2024 01:04

Другие вопросы по теме