Как построить изображение геофизика без изменения цвета - PullRequest
0 голосов
/ 30 января 2019

У меня есть растровый файл .tif, который я создал с помощью qgis и представляющий внутреннюю карту здания.Я хочу построить его вместе с некоторыми данными в файлах геойсона.

Вот как я это делаю:

CRS=3857
zones = gpd.read_file('zones_newton.json')
postes = gpd.read_file('postes_newton.json')
raster = rasterio.open("plan_modified{}.tif".format(CRS))

fig, ax = plt.subplots(figsize=(15, 15))
rasterio.plot.show(raster, ax=ax, alpha=0.2)
ax_zones = zones.to_crs(epsg=CRS).plot(ax=ax, alpha=0.4)
ax_postes = postes.to_crs(epsg=CRS).plot(ax=ax, color='red')
postes.to_crs(epsg=CRS).apply(lambda row: ax.annotate(s=row.name, xy=(row.geometry.x, row.geometry.y)), axis=1)

plt.axis('off')

Проблема в том, что карта здания желтая.Я подумал, что это из-за 4-го канала (альфа).Действительно, когда я делаю это:

rasterio.plot.show(raster.read([1, 2, 3]), ax=ax)

Он отображает изображение с хорошими цветами.Но он теряет географическую информацию.Нет проблем, я могу добавить это обратно:

CRS=3857

fig, ax = plt.subplots(figsize=(15, 15))

raster = rasterio.open("plan_modified{}.tif".format(CRS))
raster_arr = raster.read([1,2,3])
raster_meta = raster.profile

dst_meta = raster_meta
dst_meta['count'] = 3

with rasterio.open("plan_modified{}_3.tif".format(CRS), mode='w', **dst_meta) as raster3:
    raster3.write(raster_arr)

raster3 = rasterio.open("plan_modified{}_3.tif".format(CRS))
print(raster3.profile)
rasterio.plot.show(raster3, ax=ax)

И теперь не только карта желтого цвета, но и фон фиолетового цвета.

Как я могу иметь нормальные цвета И географическую информацию

...