MeteorologicalCenterBackend

所属分类:地理学
开发工具:Python
文件大小:0KB
下载次数:0
上传日期:2023-06-06 17:30:16
上 传 者sh-1993
说明:  气象中心后端,,
(MeteorologicalCenterBackend,,)

文件列表:
__pycache__/ (0, 2023-06-06)
__pycache__/crawlers.cpython-38.pyc (11305, 2023-06-06)
__pycache__/earthquake.cpython-38.pyc (5888, 2023-06-06)
__pycache__/electricity.cpython-38.pyc (5609, 2023-06-06)
__pycache__/reservoir.cpython-38.pyc (5821, 2023-06-06)
__pycache__/test_earthquake.cpython-38-pytest-7.3.1.pyc (3768, 2023-06-06)
__pycache__/test_electricity.cpython-38-pytest-7.3.1.pyc (2633, 2023-06-06)
__pycache__/test_reservoir.cpython-38-pytest-7.3.1.pyc (3503, 2023-06-06)
chromedriver (15363648, 2023-06-06)
config.json (2280, 2023-06-06)
crawl.py (20808, 2023-06-06)
crawlers.py (17676, 2023-06-06)
earthquake.py (6546, 2023-06-06)
electricity.py (5945, 2023-06-06)
online_crawler.py (1017, 2023-06-06)
requirements.txt (183, 2023-06-06)
reservoir.py (6452, 2023-06-06)
setup.py (3707, 2023-06-06)
test_earthquake.py (3005, 2023-06-06)
test_electricity.py (1654, 2023-06-06)
test_reservoir.py (4797, 2023-06-06)

# Meterorological Center Backend ## Requirements - PostgreSQL - Python >= 3.8 - chromedriver // 要跟自己的系統和chromedriver的版本一樣 ## Installation 1. Python requirements ```shell pip install requirements.txt ``` 2. Database In config.json : 以下是 PostgreSQL 的參數,要根據自己 build 的時候改 ```shell "db_name": "test1", //是自己在PostgreSQL創建時 自己CREATE的DB "db_user": "jaysun", // 自己的名字 "db_password": "", // 自己的密碼 "db_host": "/tmp", // 自己的host "db_port": "5432", //自己的post ``` 3. Server 以下皆在 config.json ``` "chromedriver_path": "./chromedriver", //自己的chromedriver的路徑 // 還沒設定 不用管 "endpoint_host": "127.0.0.1", "endpoint_port": 8000, "endpoint_allowed_origins": ["*"], // CORS的,也不用改 "data_allowed_origins": ["*"], // 以下的host和post可以自己改 "reservoir_host": "127.0.0.1", "reservoir_port": 7000, "electricity_host": "127.0.0.1", "electricity_port": 8551, "earthquake_host": "127.0.0.1", "earthquake_port": 8400, ``` ## Run 裝完 PostgreSQL, Python;設定好 config.json 後 1. Database Basic Setup ``` python setup.py python online_crawler.py //定時爬 ``` 2. Reservoir ``` python reservoir.py ``` 3. Earthquake ``` python earthquake.py ``` 4. Electricity ``` python electricity.py ``` ### 以下的 API 在 call 的時候 如果資料庫裡沒有就需要重爬,特別 Reservoir 會花超久所以盡量不要用太久的時間區段,或是可以先 call 幾次讓它爬完存好再 demo ## Resorvoir 1. API: [host]:[port]/reservoir_fetch/ (都是用 POST) 2. Body Parameters ```shell reservoir_names: 水庫名字 (array of strings) // 以下都是int year_to: 終止年 month_to: 終止月 day_to: 終止日 hour_to: 終止時 (optional) minute_to: 終止分 (optional) second_to: 終止秒 (optional) past_hours: 過去幾個小時 (optional, 填了以下就不用填) year_from: 起始年 month_from: 起始月 day_from: 起始日 hour_from: 起始時 minute_from: 起始分 second_from: 起始秒 ``` 3. Example Return ``` { "data": [ { "水庫名稱": "曾文水庫", "時間": [ "2023-06-03 16:00:00", "2023-06-03 17:00:00", "2023-06-03 18:00:00" ], "本日集水區累積降雨量(mm)": [ 29.7, 30.5, 30.8 ], "進流量(cms)": [ -1, -1, -1 ], "水位(公尺)": [ 191.54, 191.56, 191.56 ], "滿水位(公尺)": [ 230, 230, 230 ], "有效蓄水量(萬立方公尺)": [ 3699, 3706, 3706 ], "蓄水百分比(%)": [ 7.3, 7.31, 7.31 ], "取水流量(cms)": [ -1, -1, -1 ], "發電放水口": [ "-1.0", "-1.0", "-1.0" ], "排砂道/PRO": [ "-1.0", "-1.0", "-1.0" ], "排洪隧道": [ "-1.0", "-1.0", "-1.0" ], "溢洪道": [ "-1.0", "-1.0", "-1.0" ], "其他": [ "-1.0", "-1.0", "-1.0" ], "小計": [ -1, -1, -1 ], "目前狀態": [ "-1.0", "-1.0", "-1.0" ], "預定時間": [ "-1.0", "-1.0", "-1.0" ], "預定放流量(cms)": [ -1, -1, -1 ] }, { "水庫名稱": "石門水庫", "時間": [ "2023-06-03 16:00:00", "2023-06-03 17:00:00", "2023-06-03 18:00:00" ], "本日集水區累積降雨量(mm)": [ -1, -1, -1 ], "進流量(cms)": [ -1, -1, -1 ], "水位(公尺)": [ 231.75, 231.74, 231.73 ], "滿水位(公尺)": [ 245, 245, 245 ], "有效蓄水量(萬立方公尺)": [ 10690.57, 10684.58, 10678.59 ], "蓄水百分比(%)": [ 52.08, 52.05, 52.02 ], "取水流量(cms)": [ -1, -1, -1 ], "發電放水口": [ "-1.0", "-1.0", "-1.0" ], "排砂道/PRO": [ "-1.0", "-1.0", "-1.0" ], "排洪隧道": [ "-1.0", "-1.0", "-1.0" ], "溢洪道": [ "-1.0", "-1.0", "-1.0" ], "其他": [ "-1.0", "-1.0", "-1.0" ], "小計": [ -1, -1, -1 ], "目前狀態": [ "-1.0", "-1.0", "-1.0" ], "預定時間": [ "-1.0", "-1.0", "-1.0" ], "預定放流量(cms)": [ -1, -1, -1 ] } ] } ``` ## Electricity 1. API: [host]:[port]/electricity_fetch/ (都是用 POST) 2. Body Parameters ```shell power_plant_regions: 地點 (array of strings, Ex: ['北']) // 以下都是int year_to: 終止年 month_to: 終止月 day_to: 終止日 hour_to: 終止時 (optional) minute_to: 終止分 (optional) second_to: 終止秒 (optional) past_days: 過去幾天 (optional, 填了以下就不用填) year_from: 起始年 month_from: 起始月 day_from: 起始日 hour_from: 起始時 minute_from: 起始分 second_from: 起始秒 ``` 3. Example Return ``` { "data": [ { "區": "中", "時間": [ "2023-04-02 00:00:00", "2023-04-03 00:00:00" ], "供電(萬瓩)": [ 855.5924000000001, 831.8640000000001 ], "負載(萬瓩)": [ 693.414, 693.7650000000001 ] }, { "區": "北", "時間": [ "2023-04-02 00:00:00", "2023-04-03 00:00:00" ], "供電(萬瓩)": [ 765.037, 743.8199999999999 ], "負載(萬瓩)": [ 919.4155999999999, 919.881 ] } ] } ``` ## Earthquake 1. API: [host]:[port]/earthquake_fetch/ (都是用 POST) 2. Body Parameters ```shell earthquake_regions: 地點 (array of strings, Ex: ['北']) // 以下都是int year_to: 終止年 month_to: 終止月 day_to: 終止日 hour_to: 終止時 (optional) minute_to: 終止分 (optional) second_to: 終止秒 (optional) past_hours: 過去幾小時 past_days: 過去幾天 past_months: 過去幾月 (optional, 上面三個填了一個以上以下就不用填) year_from: 起始年 month_from: 起始月 day_from: 起始日 hour_from: 起始時 minute_from: 起始分 second_from: 起始秒 ``` 3. Example Returns ```shell { "data": [ { "區": "北", "時間": [ "2021-03-30 06:06:55", "2021-03-30 22:16:42", "2021-03-31 03:07:20", "2021-04-02 13:50:56", "2021-04-03 15:31:18" ], "震度階級": [ 0, 0, 0, 0, 0 ], "震央經度": [ 122.02, 121.15, 121.81, 121.07, 120.14 ], "震央緯度": [ 24.81, 21.91, 24.45, 22.5, 22.88 ], "震央規模": [ 4.01, 3.93, 2.86, 4.1, 3.77 ], "震央深度": [ 13.72, 32.39, 17.38, 24.58, 15.67 ], "震央震度階級": [ 2, 2, 4, 2, 3 ] } ] } ```

近期下载者

相关文件


收藏者