Преобразование файла .png в pandas DataFrame

У меня есть радарное изображение 512x512 .png с именем png_image

У меня также есть csv rainfall_colour_table со следующими заголовками B, G, R, rainfall_mm, которые я могу использовать для связи значений цвета со значениями интенсивности дождя.

Как лучше всего прочитать png_image и преобразовать его в 512x512 Pandas DataFrame, где значения rainfall_mm из rainfall_colour_table.

Я использовал следующий подход.

from urllib.request import urlopen, Request
import cv2
import os
import numpy as np
import pandas as pd

# NOTE: the ftp sourve of the png changes every 30 min
# get any current .png file name from the website ftp://ftp.bom.gov.au/anon/gen/radar//
# and set the below variable
file_name = 

# get connection to file
input_url = "ftp://ftp.bom.gov.au/anon/gen/radar//" + file_name
req = Request(input_url)

req_html = urlopen(req).read()

# read file
radar_image = np.fromstring(req_html, np.uint8)  # read byte image
radar_image = cv2.imdecode(radar_image, cv2.IMREAD_COLOR)  # convert to numppy array

# OS agnostic relative file path
# get the current directory path
base_dir = os.path.dirname(__file__)

# OS agnostic relative file path
# load colour to mm/hr concurrency table
rainfall_colour_table = os.path.join(os.sep, base_dir, 'sample_data', 'radar_colours.csv')
rainfall_colour_df = pd.read_csv(rainfall_colour_table)
rainfall_colour_df.set_index(['B', 'G', 'R'], inplace=True)

# switch colours with rain intensity
radar_df = pd.DataFrame(rainfall_colour_df.loc[list(map(tuple, pin))].rainfall.values for pin in radar_image)
radar_df.columns = ['pixel_col_' + str(col) for col in radar_df.columns]

Rainfall_color_table.csv

colour_id,rainfall,B,G,R
2,1.5,255,180,180
3,2.5,255,120,120
4,4,255,20,20
5,6,195,216,0
6,10,144,150,0
7,15,102,102,0
8,20,0,255,255
9,35,0,200,255
10,50,0,150,255
11,80,0,100,255
12,120,0,0,255
13,200,0,0,200
14,300,0,0,120
15,360,0,0,40

person Tom    schedule 18.02.2018    source источник
comment
Нам было бы легче помочь вам, если бы вы предоставили нам исполняемый пример кода с автономными поддельными данными. Даже если это просто изображение 3х3.   -  person John Zwinck    schedule 18.02.2018
comment
Вы видели, как они это делают здесь: stackoverflow.com/questions/47038538/ ?   -  person Tiago Martins Peres 李大仁    schedule 18.02.2018
comment
надеюсь, это поможет   -  person Tom    schedule 18.02.2018
comment
Пожалуйста, попробуйте удалить весь ненужный код и пусть код будет только о вашем вопросе.   -  person Anton vBR    schedule 02.04.2018