Зацикливание переменной и нанесение на нее случайного цвета и идентификатора на карте - PullRequest
0 голосов
/ 08 ноября 2019

Мне нужно перебрать столбец в моем наборе данных и нанести на карту эти точки с их идентификаторами образцов со случайными цветами на карте.

Из набора данных дрифтеров "drifters.csv" выберите только дрифтерыкоторые находятся в некоторой точке Мексиканского залива, как это определено по долготе от 260 до 280 градусов (координаты долготы для этих данных колеблются от 0 до 360) и по широте от 18 до 32 градусов. ^^ Я успешно сделал это

Затем, используя только это подмножество дрифтеров: Определите каждый из отдельных треков с номером в столбце «id». Составьте каждую дорожку, используя уникальный (случайный) цвет. Все еще используйте точки, чтобы представить индивидуальное местоположение дрифтера. Сделайте размер вашей карты меньшим, чем весь земной шар, но достаточно большим, чтобы увидеть полный размер каждого дрифтера, который достигает в Мексиканском заливе.

drf = pd.read_csv('drifters.csv', index_col=[0], parse_dates=True)
lonmin = drf.lon > 260
lonmax = drf.lon < 280
latmin = drf.lat > 18
latmax = drf.lat < 32

ind = (lonmin) & (lonmax) & (latmin) & (latmax)

proj = cartopy.crs.Mollweide()
pc = cartopy.crs.PlateCarree()

fig = plt.figure(figsize=(16,8))
ax = fig.add_subplot(111, projection = proj)
mean = ds['sss'].sel(time='2012').mean(axis=0)
mappable = ax.contourf(ds.longitude, ds.latitude, mean, 25,         
cmap=cmo.thermal, transform=pc, vmin=30, vmax=40)

m = plt.cm.ScalarMappable(cmap=cmo.thermal)
m.set_array(mean)
m.set_clim(30, 36)
cb = plt.colorbar(m)
cb.set_label("Sea Surface Salinity", fontsize=16)
plt.title("Sea Surface Salinity with Drifters", fontsize=26)

Пример данных выглядит так:

date                 lon    lat     id      
2005-11-22 03:00:00 11.778  37.491  59736
2005-11-22 06:00:00 11.779  37.520  59736
2005-11-22 09:00:00 11.794  37.453  59736
2005-11-23 00:00:00 11.730  37.398  59736
2005-11-23 03:00:00 11.682  37.358  59736
2005-11-23 06:00:00 11.638  37.348  59736
2005-11-23 09:00:00 11.653  37.325  59736
...