pv_forecasting/download.ipynb

1826 lines
370 KiB
Plaintext
Raw Permalink Normal View History

2023-08-23 16:00:06 +08:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"百度一下,你就知道\n"
]
}
],
"source": [
"from selenium import webdriver\n",
"from selenium.webdriver.chrome.options import Options\n",
"\n",
"options = Options()\n",
"\n",
"options.headless = True\n",
"\n",
"driver = webdriver.Chrome(\"/usr/bin/chromedriver\", options=options)\n",
"\n",
"driver.get(\"https://www.baidu.com/\")\n",
"print(driver.title)\n",
"driver.quit()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import pygrib as pg"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"data = pg.open('./data/20230816/gfs.t18z.pgrb2.0p25.f001')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"data.seek(0)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1:Downward short-wave radiation flux:W m**-2 (avg):regular_ll:surface:level 0:fcst time 0-1 hrs (avg):from 202308160000]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.select(name=\"Downward short-wave radiation flux\")"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"for grb in data:\n",
" break"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.0000e+00, 2.5000e-01, 5.0000e-01, ..., 3.5925e+02, 3.5950e+02,\n",
" 3.5975e+02],\n",
" [0.0000e+00, 2.5000e-01, 5.0000e-01, ..., 3.5925e+02, 3.5950e+02,\n",
" 3.5975e+02],\n",
" [0.0000e+00, 2.5000e-01, 5.0000e-01, ..., 3.5925e+02, 3.5950e+02,\n",
" 3.5975e+02],\n",
" ...,\n",
" [0.0000e+00, 2.5000e-01, 5.0000e-01, ..., 3.5925e+02, 3.5950e+02,\n",
" 3.5975e+02],\n",
" [0.0000e+00, 2.5000e-01, 5.0000e-01, ..., 3.5925e+02, 3.5950e+02,\n",
" 3.5975e+02],\n",
" [0.0000e+00, 2.5000e-01, 5.0000e-01, ..., 3.5925e+02, 3.5950e+02,\n",
" 3.5975e+02]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grb.latlons()[1]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"lat = grb.latlons()[0][:, 0]\n",
"lon = grb.latlons()[1][0]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.0000e+00, 2.5000e-01, 5.0000e-01, ..., 3.5925e+02, 3.5950e+02,\n",
" 3.5975e+02])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lon"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"721"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(lat)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[18.56 , 15.12 , 13.168, ..., 0. , 0. , 0. ],\n",
" [17.664, 15.136, 14.656, ..., 0. , 0. , 0. ],\n",
" [17.904, 16.4 , 16.8 , ..., 0. , 0. , 0. ],\n",
" ...,\n",
" [ 2.592, 2.816, 2.48 , ..., 0. , 0. , 0. ],\n",
" [ 3.408, 2.688, 2.816, ..., 0. , 0. , 0. ],\n",
" [ 6.816, 5.712, 2.768, ..., 0. , 0. , 0. ]])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grb.values"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7faab5bb55e0>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 958.669x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.matshow(data.select(name=\"Downward short-wave radiation flux\")[0].values)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import urllib3"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"url = \"https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/\""
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"import requests"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"import datetime as dt"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'20230815'"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt.datetime.strftime(dt.datetime.now() - dt.timedelta(days=1), \"%Y%m%d\")"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from logzero import logger\n",
"import os\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"date = '20230816'\n",
"file_path = f\"./data/{date}/\"\n",
"files = [f\"{file_path}/{x}\" for x in os.listdir(file_path) if x.startswith('gfs')]\n",
"pred = list()\n",
"for file in files:\n",
" data = pg.open(file)\n",
" try:\n",
" grb = data.select(name=\"Downward short-wave radiation flux\")[0]\n",
" values = grb.values\n",
" except Exception as e:\n",
" logger.info(f\"error occurs when read {file}\")\n",
" values = np.full([721, 1440], np.nan)\n",
" print(values)\n",
" finally:\n",
" pred.append(values)\n",
"rst = np.asarray(pred)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(109, 721, 1440)"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rst.shape"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"timeseries = pd.date_range('2023-08-15 18:00:00', '2023-08-20 17:00:00', freq='H')"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"120"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(timeseries)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['2023-08-15T18:00:00.000000000', '2023-08-15T19:00:00.000000000',\n",
" '2023-08-15T20:00:00.000000000', '2023-08-15T21:00:00.000000000',\n",
" '2023-08-15T22:00:00.000000000', '2023-08-15T23:00:00.000000000',\n",
" '2023-08-16T00:00:00.000000000', '2023-08-16T01:00:00.000000000',\n",
" '2023-08-16T02:00:00.000000000', '2023-08-16T03:00:00.000000000',\n",
" '2023-08-16T04:00:00.000000000', '2023-08-16T05:00:00.000000000',\n",
" '2023-08-16T06:00:00.000000000', '2023-08-16T07:00:00.000000000',\n",
" '2023-08-16T08:00:00.000000000', '2023-08-16T09:00:00.000000000',\n",
" '2023-08-16T10:00:00.000000000', '2023-08-16T11:00:00.000000000',\n",
" '2023-08-16T12:00:00.000000000', '2023-08-16T13:00:00.000000000',\n",
" '2023-08-16T14:00:00.000000000', '2023-08-16T15:00:00.000000000',\n",
" '2023-08-16T16:00:00.000000000', '2023-08-16T17:00:00.000000000',\n",
" '2023-08-16T18:00:00.000000000', '2023-08-16T19:00:00.000000000',\n",
" '2023-08-16T20:00:00.000000000', '2023-08-16T21:00:00.000000000',\n",
" '2023-08-16T22:00:00.000000000', '2023-08-16T23:00:00.000000000',\n",
" '2023-08-17T00:00:00.000000000', '2023-08-17T01:00:00.000000000',\n",
" '2023-08-17T02:00:00.000000000', '2023-08-17T03:00:00.000000000',\n",
" '2023-08-17T04:00:00.000000000', '2023-08-17T05:00:00.000000000',\n",
" '2023-08-17T06:00:00.000000000', '2023-08-17T07:00:00.000000000',\n",
" '2023-08-17T08:00:00.000000000', '2023-08-17T09:00:00.000000000',\n",
" '2023-08-17T10:00:00.000000000', '2023-08-17T11:00:00.000000000',\n",
" '2023-08-17T12:00:00.000000000', '2023-08-17T13:00:00.000000000',\n",
" '2023-08-17T14:00:00.000000000', '2023-08-17T15:00:00.000000000',\n",
" '2023-08-17T16:00:00.000000000', '2023-08-17T17:00:00.000000000',\n",
" '2023-08-17T18:00:00.000000000', '2023-08-17T19:00:00.000000000',\n",
" '2023-08-17T20:00:00.000000000', '2023-08-17T21:00:00.000000000',\n",
" '2023-08-17T22:00:00.000000000', '2023-08-17T23:00:00.000000000',\n",
" '2023-08-18T00:00:00.000000000', '2023-08-18T01:00:00.000000000',\n",
" '2023-08-18T02:00:00.000000000', '2023-08-18T03:00:00.000000000',\n",
" '2023-08-18T04:00:00.000000000', '2023-08-18T05:00:00.000000000',\n",
" '2023-08-18T06:00:00.000000000', '2023-08-18T07:00:00.000000000',\n",
" '2023-08-18T08:00:00.000000000', '2023-08-18T09:00:00.000000000',\n",
" '2023-08-18T10:00:00.000000000', '2023-08-18T11:00:00.000000000',\n",
" '2023-08-18T12:00:00.000000000', '2023-08-18T13:00:00.000000000',\n",
" '2023-08-18T14:00:00.000000000', '2023-08-18T15:00:00.000000000',\n",
" '2023-08-18T16:00:00.000000000', '2023-08-18T17:00:00.000000000',\n",
" '2023-08-18T18:00:00.000000000', '2023-08-18T19:00:00.000000000',\n",
" '2023-08-18T20:00:00.000000000', '2023-08-18T21:00:00.000000000',\n",
" '2023-08-18T22:00:00.000000000', '2023-08-18T23:00:00.000000000',\n",
" '2023-08-19T00:00:00.000000000', '2023-08-19T01:00:00.000000000',\n",
" '2023-08-19T02:00:00.000000000', '2023-08-19T03:00:00.000000000',\n",
" '2023-08-19T04:00:00.000000000', '2023-08-19T05:00:00.000000000',\n",
" '2023-08-19T06:00:00.000000000', '2023-08-19T07:00:00.000000000',\n",
" '2023-08-19T08:00:00.000000000', '2023-08-19T09:00:00.000000000',\n",
" '2023-08-19T10:00:00.000000000', '2023-08-19T11:00:00.000000000',\n",
" '2023-08-19T12:00:00.000000000', '2023-08-19T13:00:00.000000000',\n",
" '2023-08-19T14:00:00.000000000', '2023-08-19T15:00:00.000000000',\n",
" '2023-08-19T16:00:00.000000000', '2023-08-19T17:00:00.000000000',\n",
" '2023-08-19T18:00:00.000000000', '2023-08-19T19:00:00.000000000',\n",
" '2023-08-19T20:00:00.000000000', '2023-08-19T21:00:00.000000000',\n",
" '2023-08-19T22:00:00.000000000', '2023-08-19T23:00:00.000000000',\n",
" '2023-08-20T00:00:00.000000000', '2023-08-20T01:00:00.000000000',\n",
" '2023-08-20T02:00:00.000000000', '2023-08-20T03:00:00.000000000',\n",
" '2023-08-20T04:00:00.000000000', '2023-08-20T05:00:00.000000000',\n",
" '2023-08-20T06:00:00.000000000', '2023-08-20T07:00:00.000000000',\n",
" '2023-08-20T08:00:00.000000000', '2023-08-20T09:00:00.000000000',\n",
" '2023-08-20T10:00:00.000000000', '2023-08-20T11:00:00.000000000',\n",
" '2023-08-20T12:00:00.000000000', '2023-08-20T13:00:00.000000000',\n",
" '2023-08-20T14:00:00.000000000', '2023-08-20T15:00:00.000000000',\n",
" '2023-08-20T16:00:00.000000000', '2023-08-20T17:00:00.000000000'],\n",
" dtype='datetime64[ns]')"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeseries.values"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_excel('./config/各市最佳倾角.xlsx')"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"data['省份'].ffill(inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['省份', '安装角度(°)', '峰值日照时数h/day', '每瓦首年发电量(kWh)/W', '年有效利用小时数(h)', '城市'], dtype='object')"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.columns"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"new_dict = dict()\n",
"for i in range(data.shape[0]):\n",
" prov = data.iloc[i]['省份']\n",
" city = data.iloc[i]['城市']\n",
" values= data.iloc[i][['安装角度(°)', '峰值日照时数h/day', '每瓦首年发电量(kWh)/W','年有效利用小时数(h)']].values.tolist()\n",
" values = [float(x) for x in values]\n",
" if prov not in new_dict:\n",
" new_dict[prov] = {}\n",
" new_dict[prov].update({city:values})"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"with open('./config/angle.json', 'w', encoding='utf-8') as fw:\n",
" import json\n",
" fw.write(json.dumps(new_dict))"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[32.0, 4.27, 1.231, 1231.25],\n",
" [30.0, 3.38, 0.975, 974.62],\n",
" [35.0, 4.9, 1.413, 1412.92],\n",
" [36.0, 4.98, 1.436, 1435.98],\n",
" [35.0, 4.9, 1.413, 1412.92],\n",
" [35.0, 4.94, 1.424, 1424.45],\n",
" [32.0, 4.11, 1.349, 1185.12],\n",
" [33.0, 4.94, 1.424, 1424.45],\n",
" [32.0, 4.72, 1.361, 1361.01],\n",
" [36.0, 4.93, 1.422, 1421.57],\n",
" [33.0, 4.7, 1.355, 1355.25],\n",
" [33.0, 4.77, 1.375, 1375.43],\n",
" [35.0, 5.0, 1.442, 1441.75],\n",
" [36.0, 4.93, 1.422, 1421.57],\n",
" [37.0, 5.03, 1.45, 1450.4],\n",
" [32.0, 4.72, 1.361, 1361.01]]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(new_dict.get('山东省').values())"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"with open('./config/angle.json', 'r', encoding='utf-8') as fr:\n",
" config = json.load(fr)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'北京市': {'北京市': [35.0, 4.21, 1.214, 1213.95]},\n",
" '上海市': {'上海市': [25.0, 4.09, 1.179, 1179.35]},\n",
" '天津市': {'天津市': [35.0, 4.57, 1.318, 1317.76]},\n",
" '重庆市': {'重庆市': [8.0, 2.38, 0.686, 686.27]},\n",
" '黑龙江省': {'哈尔滨市': [40.0, 4.3, 1.268, 1239.91],\n",
" '齐齐哈尔市': [43.0, 4.81, 1.388, 1386.96],\n",
" '牡丹江市': [40.0, 4.51, 1.301, 1300.46],\n",
" '佳木斯市': [43.0, 4.3, 1.241, 1239.91],\n",
" '鸡西市': [41.0, 4.53, 1.308, 1306.23],\n",
" '鹤岗市': [43.0, 4.41, 1.272, 1271.62],\n",
" '双鸭山市': [43.0, 4.41, 1.272, 1271.62],\n",
" '黑河市': [46.0, 4.9, 1.415, 1412.92],\n",
" '大庆市': [41.0, 4.61, 1.331, 1329.29],\n",
" '大兴安岭地区': [49.0, 4.8, 1.384, 1384.08],\n",
" '伊春市': [45.0, 4.73, 1.364, 1363.9],\n",
" '七台河市': [42.0, 4.41, 1.272, 1271.62],\n",
" '绥化市': [42.0, 4.52, 1.304, 1303.34]},\n",
" '吉林省': {'长春市': [41.0, 4.74, 1.367, 1366.78],\n",
" '延边朝鲜族自治州': [38.0, 4.27, 1.231, 1231.25],\n",
" '白城市': [42.0, 4.74, 1.369, 1366.78],\n",
" '松原市': [40.0, 4.63, 1.336, 1335.06],\n",
" '吉林市': [41.0, 4.68, 1.351, 1349.48],\n",
" '四平市': [40.0, 4.66, 1.344, 1343.71],\n",
" '辽源市': [40.0, 4.7, 1.355, 1355.25],\n",
" '通化市': [37.0, 4.45, 1.283, 1283.16],\n",
" '白山市': [37.0, 4.31, 1.244, 1242.79]},\n",
" '辽宁省': {'沈阳市': [36.0, 4.38, 1.264, 1262.97],\n",
" '朝阳市': [37.0, 4.78, 1.378, 1378.31],\n",
" '阜新市': [38.0, 4.64, 1.338, 1337.94],\n",
" '铁岭市': [37.0, 4.4, 1.269, 1268.74],\n",
" '抚顺市': [37.0, 4.41, 1.274, 1271.62],\n",
" '本溪市': [36.0, 4.4, 1.271, 1268.74],\n",
" '辽阳市': [36.0, 4.41, 1.272, 1271.62],\n",
" '鞍山市': [35.0, 4.37, 1.262, 1260.09],\n",
" '丹东市': [36.0, 4.41, 1.273, 1271.62],\n",
" '大连市': [32.0, 4.3, 1.241, 1239.91],\n",
" '营口市': [35.0, 4.4, 1.269, 1268.74],\n",
" '盘锦市': [36.0, 4.36, 1.258, 1257.21],\n",
" '锦州市': [37.0, 4.7, 1.358, 1355.25],\n",
" '葫芦岛市': [36.0, 4.66, 1.344, 1343.71]},\n",
" '河北省': {'石家庄市': [37.0, 5.03, 1.453, 1450.4],\n",
" '保定市': [32.0, 4.1, 1.182, 1182.24],\n",
" '承德市': [42.0, 5.46, 1.574, 1574.39],\n",
" '唐山市': [36.0, 4.64, 1.338, 1337.94],\n",
" '秦皇岛市': [38.0, 5.0, 1.442, 1441.75],\n",
" '邯郸市': [36.0, 4.93, 1.422, 1421.57],\n",
" '邢台市': [36.0, 4.93, 1.422, 1421.57],\n",
" '张家口市': [38.0, 4.77, 1.375, 1375.43],\n",
" '沧州市': [37.0, 5.07, 1.462, 1461.93],\n",
" '廊坊市': [40.0, 5.17, 1.491, 1490.77],\n",
" '衡水市': [36.0, 5.0, 1.442, 1441.75]},\n",
" '山西省': {'太原市': [33.0, 4.65, 1.341, 1340.83],\n",
" '大同市': [36.0, 5.11, 1.474, 1473.47],\n",
" '朔州市': [36.0, 5.16, 1.489, 1487.89],\n",
" '阳泉市': [33.0, 4.67, 1.348, 1346.59],\n",
" '长治市': [28.0, 4.04, 1.165, 1164.93],\n",
" '晋城市': [29.0, 4.28, 1.234, 1234.14],\n",
" '忻州市': [34.0, 4.78, 1.378, 1378.31],\n",
" '晋中市': [33.0, 4.65, 1.342, 1340.83],\n",
" '临汾市': [30.0, 4.27, 1.231, 1231.25],\n",
" '运城市': [26.0, 4.13, 1.193, 1190.89],\n",
" '吕梁市': [32.0, 4.65, 1.341, 1340.83]},\n",
" '内蒙古自治区': {'呼和浩特市': [35.0, 4.68, 1.349, 1349.48],\n",
" '包头市': [41.0, 5.55, 1.6, 1600.34],\n",
" '乌海市': [39.0, 5.51, 1.589, 1588.81],\n",
" '赤峰市': [41.0, 5.35, 1.543, 1542.67],\n",
" '通辽市': [44.0, 5.44, 1.569, 1568.62],\n",
" '呼伦贝尔市': [47.0, 4.99, 1.439, 1438.87],\n",
" '兴安盟': [46.0, 5.2, 1.499, 1499.42],\n",
" '鄂尔多斯市': [40.0, 5.55, 1.6, 1600.34],\n",
" '锡林郭勒盟': [43.0, 5.37, 1.548, 1548.44],\n",
" '阿拉善盟': [36.0, 5.35, 1.543, 1542.67],\n",
" '巴彦淖尔市': [41.0, 5.48, 1.58, 1580.16],\n",
" '乌兰察布市': [40.0, 5.49, 1.574, 1583.04]},\n",
" '河南省': {'郑州市': [29.0, 4.23, 1.22, 1219.72],\n",
" '开封市': [32.0, 4.54, 1.309, 1309.11],\n",
" '洛阳市': [31.0, 4.56, 1.315, 1314.88],\n",
" '焦作市': [33.0, 4.68, 1.349, 1349.48],\n",
" '平顶山市': [30.0, 4.28, 1.234, 1234.14],\n",
" '鹤壁市': [33.0, 4.73, 1.364, 1363.9],\n",
" '新乡市': [33.0, 4.68, 1.349, 1349.48],\n",
" '安阳市': [30.0, 4.32, 1.246, 1245.67],\n",
" '濮阳市': [33.0, 4.68, 1.349, 1349.48],\n",
" '商丘市': [31.0, 4.56, 1.315, 1314.88],\n",
" '许昌市': [30.0, 4.4, 1.269, 1268.74],\n",
" '漯河市': [29.0, 4.16, 1.2, 1199.54],\n",
" '信阳市': [27.0, 4.13, 1.191, 1190.89],\n",
" '三门峡市': [31.0, 4.56, 1.315, 1314.88],\n",
" '南阳市': [29.0, 4.16, 1.2, 1199.54],\n",
" '周口市': [29.0, 4.16, 1.2, 1199.54],\n",
" '驻马店市': [28.0, 4.34, 1.251, 1251.44],\n",
" '济源市': [28.0, 4.1, 1.182, 1182.24]},\n",
" '湖南省': {'长沙市': [20.0, 3.18, 0.917, 916.95],\n",
" '张家界市': [23.0, 3.81, 1.099, 1098.61],\n",
" '常德市': [20.0, 3.38, 0.975, 974.62],\n",
" '益阳市': [16.0, 3.16, 0.912, 911.19],\n",
" '岳阳市': [16.0, 3.22, 0.931, 928.49],\n",
" '株洲市': [19.0, 3.46, 0.998, 997.69],\n",
" '湘潭市': [16.0, 3.23, 0.933, 931.37],\n",
" '衡阳市': [18.0, 3.39, 0.978, 977.51],\n",
" '郴州市': [18.0, 3.46, 0.998, 997.69],\n",
" '永州市': [15.0, 3.27, 0.944, 942.9],\n",
" '邵阳市': [15.0, 3.25, 0.937, 937.14],\n",
" '怀化市': [15.0, 2.96, 0.853, 853.52],\n",
" '娄底市': [16.0, 3.19, 0.921, 919.84],\n",
" '湘西土家族苗族自治州': [15.0, 2.83, 0.817, 816.03]},\n",
" '湖北省': {'武汉市': [20.0, 3.17, 0.914, 914.07],\n",
" '十堰市': [26.0, 3.87, 1.116, 1115.91],\n",
" '襄阳市': [20.0, 3.52, 1.016, 1014.99],\n",
" '荆门市': [20.0, 3.16, 0.913, 911.19],\n",
" '孝感市': [20.0, 3.51, 1.012, 1012.11],\n",
" '黄石市': [25.0, 3.89, 1.122, 1121.68],\n",
" '咸宁市': [19.0, 3.37, 0.972, 971.74],\n",
" '荆州市': [23.0, 3.75, 1.081, 1081.31],\n",
" '宜昌市': [20.0, 3.44, 0.992, 991.92],\n",
" '随州市': [22.0, 3.59, 1.036, 1035.18],\n",
" '鄂州市': [21.0, 3.66, 1.057, 1055.36],\n",
" '黄冈市': [21.0, 3.68, 1.063, 1061.13],\n",
" '恩施土家族苗族自治州': [15.0, 2.73, 0.788, 787.2],\n",
" '仙桃市': [17.0, 3.29, 0.949, 948.67],\n",
" '天门市': [18.0, 3.15, 0.91, 908.3],\n",
" '神农架林区': [21.0, 3.23, 0.934, 931.37],\n",
" '潜江市': [27.0, 3.89, 1.122, 1121.68]},\n",
" '四川省': {'成都市': [16.0, 2.76, 0.798, 795.85],\n",
" '广元市': [19.0, 3.25, 0.937, 937.14],\n",
" '绵阳市': [17.0, 2.82, 0.813, 813.15],\n",
" '德阳市': [17.0, 2.79, 0.805, 804.5],\n",
" '南充市': [14.0, 2.81, 0.81, 810.26],\n",
" '广安市': [13.0, 2.77, 0.8, 798.73],\n",
" '遂宁市': [11.0, 2.8, 0.808, 807.38],\n",
" '内江市': [11.0, 2.59, 0.747, 746.83],\n",
" '乐山市': [17.0, 2.77, 0.799, 798.73],\n",
" '自贡市': [13.0, 2.62, 0.756, 755.48],\n",
" '泸州市': [11.0, 2.6, 0.75, 749.71],\n",
" '宜宾市': [12.0, 2.67, 0.771, 769.89],\n",
" '攀枝花市': [27.0, 5.01, 1.445, 1444.63],\n",
" '巴中市': [17.0, 2.94, 0.849, 847.75],\n",
" '达州市': [14.0, 2.82, 0.814, 813.15],\n",
" '资阳市': [15.0, 2.73, 0.789, 787.2],\n",
" '眉山市': [16.0, 2.72, 0.786, 784.31],\n",
" '雅安市': [16.0, 2.92, 0.842, 841.98],\n",
" '甘孜藏族自治州': [30.0, 4.17, 1.203, 1202.42],\n",
" '凉山彝族自治州': [25.0, 4.39, 1.266, 1265.86],\n",
" '阿坝藏族羌族自治州': [35.0, 5.28, 1.523, 1522.49]},\n",
" '云南省': {'昆明市': [25.0, 4.4, 1.271, 1268.74],\n",
" '曲靖市': [25.0, 4.24, 1.224, 1222.6],\n",
" '玉溪市': [24.0, 4.46, 1.288, 1286.04],\n",
" '丽江市': [29.0, 5.18, 1.494, 1493.65],\n",
" '普洱市': [21.0, 4.33, 1.25, 1248.56],\n",
" '临沧市': [25.0, 4.63, 1.335, 1335.06],\n",
" '德宏傣族景颇族自治州': [25.0, 4.74, 1.367, 1366.78],\n",
" '怒江傈僳族自治州': [27.0, 4.68, 1.35, 1349.48],\n",
" '迪庆藏族自治州': [28.0, 5.01, 1.446, 1444.63],\n",
" '楚雄彝族自治州': [25.0, 4.49, 1.296, 1294.69],\n",
" '昭通市': [22.0, 4.25, 1.225, 1225.49],\n",
" '大理白族自治州': [27.0, 4.91, 1.416, 1415.8],\n",
" '红河哈尼族彝族自治州': [23.0, 4.56, 1.314, 1314.88],\n",
" '保山市': [29.0, 4.66, 1.344, 1343.71],\n",
" '文山壮族苗族自治州': [22.0, 4.52, 1.303, 1303.34],\n",
" '西双版纳傣族自治州': [20.0, 4.47, 1.291, 1288.92]},\n",
" '贵州省': {'贵阳市': [15.0, 2.95, 0.852, 850.63],\n",
" '六盘水市': [22.0, 3.84, 1.107, 1107.26],\n",
" '遵义市': [13.0, 2.79, 0.805, 804.5],\n",
" '安顺市': [13.0, 3.05, 0.879, 879.47],\n",
" '毕节市': [21.0, 3.76, 1.086, 1084.2],\n",
" '黔西南布依族苗族自治州': [20.0, 3.85, 1.111, 1110.15],\n",
" '铜仁市': [15.0, 2.9, 0.836, 836.22]},\n",
" '西藏自治区': {'拉萨市': [28.0, 6.4, 1.845, 1845.44],\n",
" '阿里地区': [32.0, 6.59, 1.9, 1900.23],\n",
" '昌都市': [32.0, 5.18, 1.494, 1493.65],\n",
" '林芝市': [30.0, 5.33, 1.537, 1536.91],\n",
" '日喀则市': [32.0, 6.61, 1.906, 1905.99],\n",
" '山南市': [32.0, 6.13, 1.758, 1767.5],\n",
" '那曲市': [35.0, 5.84, 1.648, 1683.96]},\n",
" '新疆维吾尔自治区': {'乌鲁木齐市': [33.0, 4.22, 1.217, 1216.84],\n",
" '昌吉回族自治州': [33.0, 4.22, 1.217, 1216.84],\n",
" '克拉玛依市': [41.0, 4.87, 1.404, 1404.26],\n",
" '吐鲁番市': [42.0, 5.55, 1.6, 1600.34],\n",
" '哈密市': [40.0, 5.33, 1.537, 1536.91],\n",
" '石河子市': [38.0, 5.12, 1.478, 1476.35],\n",
" '伊犁哈萨克自治州': [40.0, 4.95, 1.427, 1427.33],\n",
" '巴音郭楞蒙古自治州': [41.0, 5.42, 1.563, 1562.86],\n",
" '和田地区': [35.0, 5.59, 1.612, 1611.88],\n",
" '阿勒泰地区': [44.0, 5.17, 1.494, 1490.77],\n",
" '塔城地区': [41.0, 4.88, 1.407, 1407.15],\n",
" '阿克苏地区': [40.0, 5.35, 1.543, 1542.67],\n",
" '博尔塔拉蒙古自治州': [40.0, 4.91, 1.416, 1415.8],\n",
" '克孜勒苏柯尔克孜自治州': [40.0, 4.92, 1.419, 1418.68],\n",
" '喀什地区': [40.0, 4.92, 1.419, 1418.68],\n",
" '图木舒克市': [37.0, 5.0, 1.442, 1441.75],\n",
" '阿拉尔市': [38.0, 4.92, 1.419, 1418.68],\n",
" '五家渠市': [36.0, 4.65, 1.341, 1340.83]},\n",
" '陕西省': {'西安市': [26.0, 3.57, 1.029, 1029.41],\n",
" '宝鸡市': [30.0, 4.28, 1.234, 1234.14],\n",
" '咸阳市': [26.0, 3.57, 1.029, 1029.41],\n",
" '渭南市': [31.0, 4.45, 1.283, 1283.16],\n",
" '铜川市': [33.0, 4.65, 1.341, 1340.83],\n",
" '延安市': [35.0, 4.99, 1.439, 1438.87],\n",
" '榆林市': [38.0, 5.4, 1.557, 1557.09],\n",
" '汉中市': [29.0, 4.06, 1.171, 1170.7],\n",
" '安康市': [26.0, 3.85, 1.11, 1110.15],\n",
" '商洛市': [26.0, 3.57, 1.029, 1029.41]},\n",
" '甘肃省': {'兰州市': [29.0, 4.21, 1.214, 1213.95],\n",
" '酒泉市': [41.0, 5.54, 1.597, 1597.46],\n",
" '嘉峪关市': [41.0, 5.54, 1.597, 1597.46],\n",
" '张掖市': [42.0, 5.59, 1.612, 1611.88],\n",
" '天水市': [32.0, 4.51, 1.3, 1300.46],\n",
" '白银市': [38.0, 5.31, 1.531, 1531.14],\n",
" '定西市': [38.0, 5.2, 1.499, 1499.42],\n",
" '甘南藏族自治州': [32.0, 4.51, 1.3, 1300.46],\n",
" '金昌市': [39.0, 5.6, 1.615, 1614.76],\n",
" '临夏回族自治州': [38.0, 5.2, 1.499, 1499.42],\n",
" '陇南市': [28.0, 4.51, 1.3, 1300.46],\n",
" '平凉市': [34.0, 4.76, 1.373, 1372.55],\n",
" '庆阳市': [34.0, 4.69, 1.352, 1352.36],\n",
" '武威市': [40.0, 5.17, 1.491, 1490.77]},\n",
" '宁夏回族自治区': {'银川市': [36.0, 5.06, 1.459, 1459.05],\n",
" '石嘴山市': [39.0, 5.54, 1.597, 1597.46],\n",
" '固原市': [34.0, 4.76, 1.373, 1372.55],\n",
" '中卫市': [37.0, 5.39, 1.554, 1554.21],\n",
" '吴忠市': [38.0, 5.3, 1.528, 1528.26]},\n",
" '青海省': {'西宁市': [34.0, 4.7, 1.355, 1355.25],\n",
" '果洛藏族自治州': [36.0, 5.19, 1.497, 1496.54],\n",
" '海北藏族自治州': [34.0, 4.7, 1.355, 1355.25],\n",
" '海东市': [34.0, 4.7, 1.355, 1355.25],\n",
" '海南藏族自治州': [38.0, 5.88, 1.695, 1695.5],\n",
" '海西蒙古族藏族自治州': [41.0, 5.65, 1.629, 1629.18],\n",
" '黄南藏族自治州': [39.0, 5.81, 1.675, 1675.31],\n",
" '玉树藏族自治州': [34.0, 5.37, 1.548, 1548.44]},\n",
" '广东省': {'广州市': [20.0, 3.16, 0.91, 911.19],\n",
" '清远市': [19.0, 3.43, 0.989, 989.04],\n",
" '韶关市': [18.0, 3.67, 1.06, 1058.24],\n",
" '河源市': [18.0, 3.66, 1.056, 1055.36],\n",
" '梅州市': [20.0, 3.92, 1.132, 1130.33],\n",
" '潮州市': [19.0, 4.0, 1.156, 1153.4],\n",
" '汕头市': [19.0, 4.02, 1.16, 1159.17],\n",
" '揭阳市': [18.0, 3.97, 1.147, 1144.75],\n",
" '汕尾市': [17.0, 3.81, 1.1, 1098.61],\n",
" '惠州市': [18.0, 3.74, 1.079, 1078.43],\n",
" '东莞市': [17.0, 3.52, 1.017, 1014.99],\n",
" '深圳市': [17.0, 3.78, 1.089, 1089.96],\n",
" '珠海市': [17.0, 4.0, 1.153, 1153.4],\n",
" '中山市': [17.0, 3.88, 1.118, 1118.8],\n",
" '江门市': [17.0, 3.76, 1.084, 1084.2],\n",
" '佛山市': [18.0, 3.43, 0.99, 989.04],\n",
" '肇庆市': [18.0, 3.48, 1.003, 1003.46],\n",
" '云浮市': [17.0, 3.53, 1.018, 1017.88],\n",
" '阳江市': [16.0, 3.9, 1.127, 1124.57],\n",
" '茂名市': [16.0, 3.84, 1.108, 1107.26],\n",
" '湛江市': [14.0, 3.9, 1.125, 1124.57]},\n",
" '广西壮族自治区': {'南宁市': [14.0, 3.62, 1.044, 1043.83],\n",
" '桂林市': [17.0, 3.35, 0.967, 965.97],\n",
" '百色市': [15.0, 3.79, 1.094, 1092.85],\n",
" '玉林市': [16.0, 3.74, 1.079, 1078.43],\n",
" '钦州市': [14.0, 3.67, 1.059, 1058.24],\n",
" '北海市': [14.0, 3.76, 1.085, 1084.2],\n",
" '梧州市': [16.0, 3.63, 1.046, 1046.71],\n",
" '柳州市': [16.0, 3.46, 0.998, 997.69],\n",
" '河池市': [14.0, 3.46, 0.998, 997.69],\n",
" '防城港市': [14.0, 3.67, 1.059, 1058.24],\n",
" '贺州市': [17.0, 3.54, 1.02, 1020.76],\n",
" '来宾市': [14.0, 3.55, 1.024, 1023.64],\n",
" '崇左市': [14.0, 3.74, 1.078, 1078.43],\n",
" '贵港市': [15.0, 3.61, 1.042, 1040.94]},\n",
" '海南省': {'海口市': [10.0, 4.33, 1.25, 1248.56],\n",
" '三亚市': [15.0, 4.75, 1.371, 1369.66],\n",
" '琼海市': [12.0, 4.71, 1.358, 1358.13],\n",
" '白沙黎族自治县': [15.0, 4.76, 1.374, 1372.55],\n",
" '保亭黎族苗族自治县': [15.0, 4.74, 1.368, 1366.78],\n",
" '昌江黎族自治县': [13.0, 4.55, 1.314, 1311.99],\n",
" '澄迈县': [13.0, 4.55, 1.313, 1311.99],\n",
" '儋州市': [13.0, 4.48, 1.294, 1291.81],\n",
" '定安县': [10.0, 4.32, 1.246, 1245.67],\n",
" '东方市': [14.0, 4.84, 1.396, 1395.61],\n",
" '乐东黎族自治县': [16.0, 4.77, 1.376, 1375.43],\n",
" '临高县': [12.0, 4.51, 1.302, 1300.46],\n",
" '陵水黎族自治县': [15.0, 4.74, 1.366, 1366.78],\n",
" '琼中黎族苗族自治县': [13.0, 4.72, 1.362, 1361.01],\n",
" '屯昌县': [13.0, 4.68, 1.351, 1349.48],\n",
" '万宁市': [13.0, 4.67, 1.346, 1346.59],\n",
" '文昌市': [10.0, 4.28, 1230.0, 1234.0],\n",
" '五指山市': [15.0, 4.8, 1.387, 1384.08]},\n",
" '江苏省': {'南京市': [23.0, 3.71, 1.07, 1069.78],\n",
" '徐州市': [25.0, 3.95, 1.139, 1138.98],\n",
" '连云港市': [26.0, 4.13, 1.19, 1190.89],\n",
" '盐城市': [25.0, 3.98, 1.147, 1147.63],\n",
" '泰州市': [23.0, 3.8, 1.097, 1095.73],\n",
" '镇江市': [23.0, 3.68, 1.062, 1061.13],\n",
" '南通市': [23.0, 3.92, 1.13, 1130.33],\n",
" '常州市': [23.0, 3.73, 1.076, 1075.55],\n",
" '无锡市': [23.0, 3.71, 1.07, 1069.78],\n",
" '苏州市': [22.0, 3.68, 1.062, 1061.13],\n",
" '淮安市': [25.0, 3.98, 1.148, 1147.63],\n",
" '宿迁市': [25.0, 3.96, 1.141, 1141.87],\n",
" '扬州市': [22.0, 3.69, 1.065, 1064.01]},\n",
" '浙江省': {'杭州市': [20.0, 3.42, 0.988, 986.16],\n",
" '绍兴市': [20.0, 3.56, 1.028, 1026.53],\n",
" '宁波市': [20.0, 3.67, 1.057, 1058.24],\n",
" '湖州市': [20.0, 3.7, 1.067, 1066.9],\n",
" '嘉兴市': [20.0, 3.66, 1.057, 1055.36],\n",
" '金华市': [20.0, 3.63, 1.047, 1046.71],\n",
" '丽水市': [20.0, 3.77, 1.089, 1087.08],\n",
" '温州市': [18.0, 3.77, 1.088, 1087.08],\n",
" '台州市': [23.0, 3.8, 1.098, 1095.73],\n",
" '舟山市': [20.0, 3.76, 1.085, 1084.2],\n",
" '衢州市': [20.0, 3.69, 1.064, 1064.01]},\n",
" '福建省': {'福州市': [17.0, 3.54, 1.021, 1020.76],\n",
" '莆田市': [16.0, 3.59, 1.035, 1035.18],\n",
" '南平市': [18.0, 4.17, 1.204, 1202.42],\n",
" '厦门市': [17.0, 3.89, 1.121, 1121.68],\n",
" '泉州市': [17.0, 3.92, 1.131, 1130.33],\n",
" '漳州市': [18.0, 3.87, 1.116, 1115.91],\n",
" '三明市': [18.0, 3.92, 1.132, 1130.33],\n",
" '龙岩市': [20.0, 3.92, 1.13, 1130.33],\n",
" '宁德市': [18.0, 3.62, 1.045, 1043.83]},\n",
" '山东省': {'济南市': [32.0, 4.27, 1.231, 1231.25],\n",
" '青岛市': [30.0, 3.38, 0.975, 974.62],\n",
" '淄博市': [35.0, 4.9, 1.413, 1412.92],\n",
" '东营市': [36.0, 4.98, 1.436, 1435.98],\n",
" '潍坊市': [35.0, 4.9, 1.413, 1412.92],\n",
" '烟台市': [35.0, 4.94, 1.424, 1424.45],\n",
" '枣庄市': [32.0, 4.11, 1.349, 1185.12],\n",
" '威海市': [33.0, 4.94, 1.424, 1424.45],\n",
" '济宁市': [32.0, 4.72, 1.361, 1361.01],\n",
" '泰安市': [36.0, 4.93, 1.422, 1421.57],\n",
" '日照市': [33.0, 4.7, 1.355, 1355.25],\n",
" '临沂市': [33.0, 4.77, 1.375, 1375.43],\n",
" '德州市': [35.0, 5.0, 1.442, 1441.75],\n",
" '聊城市': [36.0, 4.93, 1.422, 1421.57],\n",
" '滨州市': [37.0, 5.03, 1.45, 1450.4],\n",
" '菏泽市': [32.0, 4.72, 1.361, 1361.01]},\n",
" '江西省': {'南昌市': [16.0, 3.59, 1.036, 1035.18],\n",
" '九江市': [20.0, 3.56, 1.026, 1026.53],\n",
" '景德镇市': [20.0, 3.63, 1.047, 1046.71],\n",
" '上饶市': [20.0, 3.76, 1.084, 1084.2],\n",
" '鹰潭市': [17.0, 3.68, 1.062, 1061.13],\n",
" '宜春市': [15.0, 3.37, 0.973, 971.74],\n",
" '萍乡市': [15.0, 3.33, 0.962, 960.21],\n",
" '赣州市': [16.0, 3.67, 1.059, 1058.24],\n",
" '吉安市': [16.0, 3.59, 1.037, 1035.18],\n",
" '抚州市': [16.0, 3.64, 1.049, 1049.59],\n",
" '新余市': [15.0, 3.55, 1.025, 1023.64]},\n",
" '安徽省': {'合肥市': [27.0, 3.69, 1.064, 1064.01],\n",
" '芜湖市': [26.0, 4.03, 1.162, 1162.05],\n",
" '黄山市': [25.0, 3.84, 1.107, 1107.26],\n",
" '安庆市': [25.0, 3.91, 1.127, 1127.45],\n",
" '蚌埠市': [25.0, 3.92, 1.13, 1130.33],\n",
" '亳州市': [23.0, 3.86, 1.115, 1113.03],\n",
" '池州市': [22.0, 3.64, 1.048, 1049.59],\n",
" '滁州市': [23.0, 3.66, 1.056, 1055.36],\n",
" '阜阳市': [28.0, 4.21, 1.214, 1213.95],\n",
" '淮北市': [30.0, 4.49, 1.295, 1294.69],\n",
" '六安市': [23.0, 3.69, 1.065, 1064.01],\n",
" '马鞍山市': [22.0, 3.68, 1.061, 1061.13],\n",
" '宿州市': [30.0, 4.47, 1.289, 1288.92],\n",
" '铜陵市': [22.0, 3.65, 1.054, 1052.48],\n",
" '宣城市': [23.0, 3.65, 1.052, 1052.48],\n",
" '淮南市': [28.0, 4.24, 1.223, 1222.6]},\n",
" '香港特别行政区': {'香港特别行政区': [17.0, 3.78, 1.089, 1089.96]},\n",
" '澳门特别行政区': {'澳门特别行政区': [17.0, 4.0, 1.153, 1153.4]},\n",
" '台湾省': {'台北市': [24.0, 3.75, 1.081, 1081.31]}}"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"config"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 9255.2, 92069. ])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"230 * 0.2 * np.asarray( [201.2, 2001.5])"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import datetime as dt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"start = dt.datetime(2023,8,11, 19) + dt.timedelta(hours=8)\n",
"end = dt.datetime(2023,8,21, 19) + dt.timedelta(hours=8)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['2023-08-12 11:00:00',\n",
" '2023-08-12 12:00:00',\n",
" '2023-08-12 13:00:00',\n",
" '2023-08-12 14:00:00',\n",
" '2023-08-12 15:00:00',\n",
" '2023-08-12 16:00:00',\n",
" '2023-08-12 17:00:00',\n",
" '2023-08-12 18:00:00',\n",
" '2023-08-12 19:00:00',\n",
" '2023-08-12 20:00:00',\n",
" '2023-08-12 21:00:00',\n",
" '2023-08-12 22:00:00',\n",
" '2023-08-12 23:00:00',\n",
" '2023-08-13 00:00:00',\n",
" '2023-08-13 01:00:00',\n",
" '2023-08-13 02:00:00',\n",
" '2023-08-13 03:00:00',\n",
" '2023-08-13 04:00:00',\n",
" '2023-08-13 05:00:00',\n",
" '2023-08-13 06:00:00',\n",
" '2023-08-13 07:00:00',\n",
" '2023-08-13 08:00:00',\n",
" '2023-08-13 09:00:00',\n",
" '2023-08-13 10:00:00',\n",
" '2023-08-13 11:00:00',\n",
" '2023-08-13 12:00:00',\n",
" '2023-08-13 13:00:00',\n",
" '2023-08-13 14:00:00',\n",
" '2023-08-13 15:00:00',\n",
" '2023-08-13 16:00:00',\n",
" '2023-08-13 17:00:00',\n",
" '2023-08-13 18:00:00',\n",
" '2023-08-13 19:00:00',\n",
" '2023-08-13 20:00:00',\n",
" '2023-08-13 21:00:00',\n",
" '2023-08-13 22:00:00',\n",
" '2023-08-13 23:00:00',\n",
" '2023-08-14 00:00:00',\n",
" '2023-08-14 01:00:00',\n",
" '2023-08-14 02:00:00',\n",
" '2023-08-14 03:00:00',\n",
" '2023-08-14 04:00:00',\n",
" '2023-08-14 05:00:00',\n",
" '2023-08-14 06:00:00',\n",
" '2023-08-14 07:00:00',\n",
" '2023-08-14 08:00:00',\n",
" '2023-08-14 09:00:00',\n",
" '2023-08-14 10:00:00',\n",
" '2023-08-14 11:00:00',\n",
" '2023-08-14 12:00:00',\n",
" '2023-08-14 13:00:00',\n",
" '2023-08-14 14:00:00',\n",
" '2023-08-14 15:00:00',\n",
" '2023-08-14 16:00:00',\n",
" '2023-08-14 17:00:00',\n",
" '2023-08-14 18:00:00',\n",
" '2023-08-14 19:00:00',\n",
" '2023-08-14 20:00:00',\n",
" '2023-08-14 21:00:00',\n",
" '2023-08-14 22:00:00',\n",
" '2023-08-14 23:00:00',\n",
" '2023-08-15 00:00:00',\n",
" '2023-08-15 01:00:00',\n",
" '2023-08-15 02:00:00',\n",
" '2023-08-15 03:00:00',\n",
" '2023-08-15 04:00:00',\n",
" '2023-08-15 05:00:00',\n",
" '2023-08-15 06:00:00',\n",
" '2023-08-15 07:00:00',\n",
" '2023-08-15 08:00:00',\n",
" '2023-08-15 09:00:00',\n",
" '2023-08-15 10:00:00',\n",
" '2023-08-15 11:00:00',\n",
" '2023-08-15 12:00:00',\n",
" '2023-08-15 13:00:00',\n",
" '2023-08-15 14:00:00',\n",
" '2023-08-15 15:00:00',\n",
" '2023-08-15 16:00:00',\n",
" '2023-08-15 17:00:00',\n",
" '2023-08-15 18:00:00',\n",
" '2023-08-15 19:00:00',\n",
" '2023-08-15 20:00:00',\n",
" '2023-08-15 21:00:00',\n",
" '2023-08-15 22:00:00',\n",
" '2023-08-15 23:00:00',\n",
" '2023-08-16 00:00:00',\n",
" '2023-08-16 01:00:00',\n",
" '2023-08-16 02:00:00',\n",
" '2023-08-16 03:00:00',\n",
" '2023-08-16 04:00:00',\n",
" '2023-08-16 05:00:00',\n",
" '2023-08-16 06:00:00',\n",
" '2023-08-16 07:00:00',\n",
" '2023-08-16 08:00:00',\n",
" '2023-08-16 09:00:00',\n",
" '2023-08-16 10:00:00',\n",
" '2023-08-16 11:00:00',\n",
" '2023-08-16 12:00:00',\n",
" '2023-08-16 13:00:00',\n",
" '2023-08-16 14:00:00',\n",
" '2023-08-16 15:00:00',\n",
" '2023-08-16 16:00:00',\n",
" '2023-08-16 17:00:00',\n",
" '2023-08-16 18:00:00',\n",
" '2023-08-16 19:00:00',\n",
" '2023-08-16 20:00:00',\n",
" '2023-08-16 21:00:00',\n",
" '2023-08-16 22:00:00',\n",
" '2023-08-16 23:00:00',\n",
" '2023-08-17 00:00:00',\n",
" '2023-08-17 01:00:00',\n",
" '2023-08-17 02:00:00',\n",
" '2023-08-17 03:00:00',\n",
" '2023-08-17 04:00:00',\n",
" '2023-08-17 05:00:00',\n",
" '2023-08-17 06:00:00',\n",
" '2023-08-17 07:00:00',\n",
" '2023-08-17 08:00:00',\n",
" '2023-08-17 09:00:00',\n",
" '2023-08-17 10:00:00',\n",
" '2023-08-17 11:00:00',\n",
" '2023-08-17 12:00:00',\n",
" '2023-08-17 13:00:00',\n",
" '2023-08-17 14:00:00',\n",
" '2023-08-17 15:00:00',\n",
" '2023-08-17 16:00:00',\n",
" '2023-08-17 17:00:00',\n",
" '2023-08-17 18:00:00',\n",
" '2023-08-17 19:00:00',\n",
" '2023-08-17 20:00:00',\n",
" '2023-08-17 21:00:00',\n",
" '2023-08-17 22:00:00',\n",
" '2023-08-17 23:00:00',\n",
" '2023-08-18 00:00:00',\n",
" '2023-08-18 01:00:00',\n",
" '2023-08-18 02:00:00',\n",
" '2023-08-18 03:00:00',\n",
" '2023-08-18 04:00:00',\n",
" '2023-08-18 05:00:00',\n",
" '2023-08-18 06:00:00',\n",
" '2023-08-18 07:00:00',\n",
" '2023-08-18 08:00:00',\n",
" '2023-08-18 09:00:00',\n",
" '2023-08-18 10:00:00',\n",
" '2023-08-18 11:00:00',\n",
" '2023-08-18 12:00:00',\n",
" '2023-08-18 13:00:00',\n",
" '2023-08-18 14:00:00',\n",
" '2023-08-18 15:00:00',\n",
" '2023-08-18 16:00:00',\n",
" '2023-08-18 17:00:00',\n",
" '2023-08-18 18:00:00',\n",
" '2023-08-18 19:00:00',\n",
" '2023-08-18 20:00:00',\n",
" '2023-08-18 21:00:00',\n",
" '2023-08-18 22:00:00',\n",
" '2023-08-18 23:00:00',\n",
" '2023-08-19 00:00:00',\n",
" '2023-08-19 01:00:00',\n",
" '2023-08-19 02:00:00',\n",
" '2023-08-19 03:00:00',\n",
" '2023-08-19 04:00:00',\n",
" '2023-08-19 05:00:00',\n",
" '2023-08-19 06:00:00',\n",
" '2023-08-19 07:00:00',\n",
" '2023-08-19 08:00:00',\n",
" '2023-08-19 09:00:00',\n",
" '2023-08-19 10:00:00',\n",
" '2023-08-19 11:00:00',\n",
" '2023-08-19 12:00:00',\n",
" '2023-08-19 13:00:00',\n",
" '2023-08-19 14:00:00',\n",
" '2023-08-19 15:00:00',\n",
" '2023-08-19 16:00:00',\n",
" '2023-08-19 17:00:00',\n",
" '2023-08-19 18:00:00',\n",
" '2023-08-19 19:00:00',\n",
" '2023-08-19 20:00:00',\n",
" '2023-08-19 21:00:00',\n",
" '2023-08-19 22:00:00',\n",
" '2023-08-19 23:00:00',\n",
" '2023-08-20 00:00:00',\n",
" '2023-08-20 01:00:00',\n",
" '2023-08-20 02:00:00',\n",
" '2023-08-20 03:00:00',\n",
" '2023-08-20 04:00:00',\n",
" '2023-08-20 05:00:00',\n",
" '2023-08-20 06:00:00',\n",
" '2023-08-20 07:00:00',\n",
" '2023-08-20 08:00:00',\n",
" '2023-08-20 09:00:00',\n",
" '2023-08-20 10:00:00',\n",
" '2023-08-20 11:00:00',\n",
" '2023-08-20 12:00:00',\n",
" '2023-08-20 13:00:00',\n",
" '2023-08-20 14:00:00',\n",
" '2023-08-20 15:00:00',\n",
" '2023-08-20 16:00:00',\n",
" '2023-08-20 17:00:00',\n",
" '2023-08-20 18:00:00',\n",
" '2023-08-20 19:00:00',\n",
" '2023-08-20 20:00:00',\n",
" '2023-08-20 21:00:00',\n",
" '2023-08-20 22:00:00',\n",
" '2023-08-20 23:00:00',\n",
" '2023-08-21 00:00:00',\n",
" '2023-08-21 01:00:00',\n",
" '2023-08-21 02:00:00',\n",
" '2023-08-21 03:00:00',\n",
" '2023-08-21 04:00:00',\n",
" '2023-08-21 05:00:00',\n",
" '2023-08-21 06:00:00',\n",
" '2023-08-21 07:00:00',\n",
" '2023-08-21 08:00:00',\n",
" '2023-08-21 09:00:00',\n",
" '2023-08-21 10:00:00',\n",
" '2023-08-21 11:00:00',\n",
" '2023-08-21 12:00:00',\n",
" '2023-08-21 13:00:00',\n",
" '2023-08-21 14:00:00',\n",
" '2023-08-21 15:00:00',\n",
" '2023-08-21 16:00:00',\n",
" '2023-08-21 17:00:00',\n",
" '2023-08-21 18:00:00',\n",
" '2023-08-21 19:00:00',\n",
" '2023-08-21 20:00:00',\n",
" '2023-08-21 21:00:00',\n",
" '2023-08-21 22:00:00',\n",
" '2023-08-21 23:00:00',\n",
" '2023-08-22 00:00:00',\n",
" '2023-08-22 01:00:00',\n",
" '2023-08-22 02:00:00',\n",
" '2023-08-22 03:00:00',\n",
" '2023-08-22 04:00:00',\n",
" '2023-08-22 05:00:00',\n",
" '2023-08-22 06:00:00',\n",
" '2023-08-22 07:00:00',\n",
" '2023-08-22 08:00:00',\n",
" '2023-08-22 09:00:00',\n",
" '2023-08-22 10:00:00',\n",
" '2023-08-22 11:00:00']"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.date_range(start+dt.timedelta(hours=8), end+dt.timedelta(hours=8), freq='H').astype(str).to_list()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import pygrib as pg"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"data = pg.open('./data/20230822/gfs.t18z.pgrb2.0p25.f001')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"data.close()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"data.seek(0)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"pd.DataFrame(np.random.rand(721, 1440)).to_csv('./data/test.csv', index=False, encoding='utf-8-sig')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"tmp = np.random.rand(120, 721, 1440)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"721"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(np.arange(-90, 90.1, 0.25))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.0000e+00, 2.5000e-01, 5.0000e-01, ..., 3.5925e+02, 3.5950e+02,\n",
" 3.5975e+02])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.arange(0, 360, step=0.25)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1440"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(np.arange(0, 360, step=0.25))"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum(np.arange(90, -90.1, -0.25) == lat) == 721"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum(np.arange(0, 360, step=0.25) == lon) == 1440 "
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"124588800"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"721 * 1440 * 120"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import jieba"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['阿勒', '阿勒泰', '阿勒泰地区', '地区']"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"jieba.lcut(\"阿勒泰地区\", cut_all=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"angle = pd.read_excel('./config/各市最佳倾角.xlsx')\n",
"city = pd.read_excel('city.xlsx', header=None)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"city.columns = ['prov', 'city']"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"angle = angle.ffill()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"def check_name(x, y):\n",
" for c in y:\n",
" if x in c:\n",
" return c\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"prov_list = city.prov.unique().tolist()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['河北省',\n",
" '山西省',\n",
" '内蒙古自治区',\n",
" '辽宁省',\n",
" '吉林省',\n",
" '黑龙江省',\n",
" '江苏省',\n",
" '浙江省',\n",
" '安徽省',\n",
" '福建省',\n",
" '江西省',\n",
" '山东省',\n",
" '河南省',\n",
" '湖北省',\n",
" '湖南省',\n",
" '广东省',\n",
" '广西壮族自治区',\n",
" '海南省',\n",
" '四川省',\n",
" '贵州省',\n",
" '云南省',\n",
" '西藏自治区',\n",
" '陕西省',\n",
" '甘肃省',\n",
" '青海省',\n",
" '宁夏回族自治区',\n",
" '新疆维吾尔自治区']"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"prov_list"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"angle['省份'] = angle['省份'].apply(lambda x: check_name(x, prov_list))"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>省份</th>\n",
" <th>城市</th>\n",
" <th>安装角度(°)</th>\n",
" <th>峰值日照时数h/day</th>\n",
" <th>每瓦首年发电量(kWh)/W</th>\n",
" <th>年有效利用小时数(h)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>北京市</td>\n",
" <td>北京市</td>\n",
" <td>35</td>\n",
" <td>4.21</td>\n",
" <td>1.214</td>\n",
" <td>1213.95</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>上海市</td>\n",
" <td>上海市</td>\n",
" <td>25</td>\n",
" <td>4.09</td>\n",
" <td>1.179</td>\n",
" <td>1179.35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>天津市</td>\n",
" <td>天津市</td>\n",
" <td>35</td>\n",
" <td>4.57</td>\n",
" <td>1.318</td>\n",
" <td>1317.76</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>重庆市</td>\n",
" <td>重庆市</td>\n",
" <td>8</td>\n",
" <td>2.38</td>\n",
" <td>0.686</td>\n",
" <td>686.27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>黑龙江省</td>\n",
" <td>哈尔滨</td>\n",
" <td>40</td>\n",
" <td>4.30</td>\n",
" <td>1.268</td>\n",
" <td>1239.91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>356</th>\n",
" <td>安徽省</td>\n",
" <td>宣城</td>\n",
" <td>23</td>\n",
" <td>3.65</td>\n",
" <td>1.052</td>\n",
" <td>1052.48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>357</th>\n",
" <td>安徽省</td>\n",
" <td>淮南</td>\n",
" <td>28</td>\n",
" <td>4.24</td>\n",
" <td>1.223</td>\n",
" <td>1222.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>358</th>\n",
" <td>香港特别行政区</td>\n",
" <td>香港特别行政区</td>\n",
" <td>17</td>\n",
" <td>3.78</td>\n",
" <td>1.089</td>\n",
" <td>1089.96</td>\n",
" </tr>\n",
" <tr>\n",
" <th>359</th>\n",
" <td>澳门特别行政区</td>\n",
" <td>澳门特别行政区</td>\n",
" <td>17</td>\n",
" <td>4.00</td>\n",
" <td>1.153</td>\n",
" <td>1153.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>360</th>\n",
" <td>台湾省</td>\n",
" <td>台北市</td>\n",
" <td>24</td>\n",
" <td>3.75</td>\n",
" <td>1.081</td>\n",
" <td>1081.31</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>361 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" 省份 城市 安装角度(°) 峰值日照时数h/day 每瓦首年发电量(kWh)/W 年有效利用小时数(h)\n",
"0 北京市 北京市 35 4.21 1.214 1213.95\n",
"1 上海市 上海市 25 4.09 1.179 1179.35\n",
"2 天津市 天津市 35 4.57 1.318 1317.76\n",
"3 重庆市 重庆市 8 2.38 0.686 686.27\n",
"4 黑龙江省 哈尔滨 40 4.30 1.268 1239.91\n",
".. ... ... ... ... ... ...\n",
"356 安徽省 宣城 23 3.65 1.052 1052.48\n",
"357 安徽省 淮南 28 4.24 1.223 1222.60\n",
"358 香港特别行政区 香港特别行政区 17 3.78 1.089 1089.96\n",
"359 澳门特别行政区 澳门特别行政区 17 4.00 1.153 1153.40\n",
"360 台湾省 台北市 24 3.75 1.081 1081.31\n",
"\n",
"[361 rows x 6 columns]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"angle"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"angle['地级行政区'] = angle.apply(lambda x: check_name(x['城市'], city[city.prov==x['省份']].city.values.tolist()), axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"angle.to_excel('./各市最佳倾角.xlsx', index=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "py37",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.17"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}