Merge branch 'main' of https://github.com/patrycjalazna/cloud-detection-challenge into main
This commit is contained in:
commit
4f93f46804
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
venv/
|
||||
**/images*
|
||||
**/data/train_features*
|
||||
**/data/train_labels*
|
||||
**/data/train_labels*
|
||||
|
||||
|
63
transform_data.py
Normal file
63
transform_data.py
Normal file
@ -0,0 +1,63 @@
|
||||
import os
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
import cv2 as cv
|
||||
import rasterio as rio
|
||||
|
||||
RASTERS_DIR = './data/data/train_features'
|
||||
IMAGES_DIR = './images/'
|
||||
FC_DIR = "fc"
|
||||
|
||||
|
||||
def load_img(path, expand_dim=False):
|
||||
img = cv.imread(path)
|
||||
img = img / 255.0
|
||||
if expand_dim:
|
||||
img = np.expand_dims(img, axis=0)
|
||||
|
||||
return img
|
||||
|
||||
|
||||
def create_folder(name, path):
|
||||
n = os.path.join(path, name)
|
||||
if not os.path.exists(n):
|
||||
os.makedirs(n)
|
||||
return n
|
||||
|
||||
|
||||
def scale(band):
|
||||
return band/np.max(band)
|
||||
|
||||
|
||||
def convert_raster_to_image(rasters_dir,
|
||||
rgb_path=None,
|
||||
false_color_path=None):
|
||||
|
||||
b2 = scale(rio.open(rasters_dir+'/B02.tif').read().reshape(512, 512, 1))
|
||||
b3 = scale(rio.open(rasters_dir+'/B03.tif').read().reshape(512, 512, 1))
|
||||
b4 = scale(rio.open(rasters_dir+'/B04.tif').read().reshape(512, 512, 1))
|
||||
b8 = scale(rio.open(rasters_dir+'/B08.tif').read().reshape(512, 512, 1))
|
||||
|
||||
file_name = rasters_dir.split(os.sep)[-1]
|
||||
|
||||
rgb = np.dstack([b4, b3, b2])
|
||||
|
||||
plt.imsave(fname=rgb_path + f'/{file_name}.jpeg',
|
||||
arr=rgb)
|
||||
|
||||
fc = np.dstack([b8, b3, b2])
|
||||
|
||||
plt.imsave(fname=false_color_path + f'/{file_name}.jpeg',
|
||||
arr=fc)
|
||||
|
||||
|
||||
def transform_photo(raster_dir):
|
||||
dp = create_folder(raster_dir, IMAGES_DIR)
|
||||
fc = create_folder(FC_DIR, dp)
|
||||
convert_raster_to_image(os.path.join(RASTERS_DIR, raster_dir), dp, fc)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
for d in os.listdir(RASTERS_DIR):
|
||||
transform_photo(d)
|
Loading…
Reference in New Issue
Block a user