У меня есть растровый файл .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)
И теперь не только карта желтого цвета, но и фон фиолетового цвета.
Как я могу иметь нормальные цвета И географическую информацию