Построение широты / долготы из таблицы Excel с использованием Cartopy - PullRequest
1 голос
/ 05 апреля 2020

Попытка нанести обзорный разрез на карту, используя Cartopy, библиотеку, которой не хватает онлайновой информации по сравнению с другими. Мои данные по широте и долготе находятся в двух отдельных столбцах электронной таблицы Excel.

Мне удалось построить базовую карту, и мой сценарий для этого выглядит следующим образом:

import cartopy.feature as cf

map = plt.figure(figsize=(15,15))
ax = plt.axes(projection=ccrs.EuroPP())
ax.coastlines(resolution='10m')

ax.add_feature(cf.LAND)
ax.add_feature(cf.OCEAN)
ax.add_feature(cf.COASTLINE)
ax.add_feature(cf.BORDERS, linestyle=':')
ax.add_feature(cf.LAKES, alpha=0.5)
ax.add_feature(cf.RIVERS)

ax.stock_img()

Производим следующее рисунок figure

Я также прочитал данные из столбцов Excel, помеченных как «широта» (столбец «L») и «долгота» (столбец «M»), используя pandas из следующей таблицы: https://liveplymouthac-my.sharepoint.com/: x: / g / personal / rhodri_irranca-davies_postgrad_plymouth_ac_uk / EYGoEUAO8tBLkdT0r4dwDdsBAijsVChsLCe c -DxaYo2Tew? 101 * 101 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *, *, *, *, *, *, *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, как, и и что следующий код:

file = r'C:\Users\Laptop\Documents\Python\Thesis\t2_GeoData.xlsx'
df_lat = pd.read_excel(file, index_col=None, na_values=['NA'], usecols = 'L')
df_lon = pd.read_excel(file, index_col=None, na_values=['NA'], usecols = 'M')

Был ли pandas правильный вариант? Если да, то как мне теперь объединить два созданных кадра данных ('df_lat' и 'df_lon') и построить их как разрезы с использованием картопий?

Заранее спасибо:)

1 Ответ

1 голос
/ 08 апреля 2020

Я не уверен, что вы имеете в виду именно под графиком, но вы можете построить линии lon / lat в CartoPy с помощью:

ax.plot(df_lon, df_lat, linestyle='-', color='orange', transform=ccrs.PlateCarree())
...