Мне нужно перебрать столбец в моем наборе данных и нанести на карту эти точки с их идентификаторами образцов со случайными цветами на карте.
Из набора данных дрифтеров "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