質問編集履歴

2

取り扱っているファイルについて説明

2021/03/20 10:03

投稿

Anonymous2020
Anonymous2020

スコア7

test CHANGED
File without changes
test CHANGED
@@ -183,3 +183,13 @@
183
183
  utc_dt = local_dt.astimezone(pytz.utc)
184
184
 
185
185
  ```
186
+
187
+
188
+
189
+ ### 加工しようとしているファイル
190
+
191
+ 上のコードだけではファイルの中身がわからないと思うので、詳細をお伝えします。
192
+
193
+ 取り扱おうとしているファイルはルイジアナの日照データなのですが、[こちら](https://midcdmz.nrel.gov/apps/daily.pl?site=ULL;live=1)のリンク上にある"All 1-Min Raw Data (ZIP Compressed)"を選択して"submit"を押すとcsvファイルが入手できます
194
+
195
+ 今回のコードはこのCSVファイルを加工したものです。

1

全てのコードを記入するため

2021/03/20 10:03

投稿

Anonymous2020
Anonymous2020

スコア7

test CHANGED
File without changes
test CHANGED
@@ -24,25 +24,89 @@
24
24
 
25
25
  import pandas as pd
26
26
 
27
+ import numpy as np
28
+
29
+ import matplotlib.pyplot as plt
30
+
31
+ %matplotlib inline
32
+
27
33
  import time, datetime, sys, pytz
34
+
35
+
36
+
37
+ gge_product = "NOAA/GOES/16/MCMIPF" #link: https://developers.google.com/earth-engine/datasets/catalog/NOAA_GOES_16_MCMIPF#bands
38
+
39
+
40
+
41
+ inp_files = []
42
+
43
+ inp_files += [pd.read_csv("/content/drive/MyDrive/GOES/20180901-20181231.csv")]
44
+
45
+ #inp_files += [pd.read_csv("/content/drive/MyDrive/GOES/20190101-20191231.csv")]
46
+
47
+ #inp_files += [pd.read_csv("/content/drive/MyDrive/GOES/20200101-20201231.csv")]
48
+
49
+ #inp_files += [pd.read_csv("/content/drive/MyDrive/GOES/20210101-20210315.csv")]
28
50
 
29
51
 
30
52
 
31
53
 
32
54
 
33
- date = datetime.datetime(year, 1, 1) +datetime.timedelta(days=doy-1, hours=hour, minutes=min )
55
+ for i, df_ in enumerate(inp_files):
34
56
 
35
- print(date) #2018-09-01 00:00:00
57
+ if i == 0:
36
58
 
59
+ df = df_
60
+
61
+ else:
62
+
37
- # ↑この行を挿入するとなぜかエラーが消滅する
63
+ df = pd.concat([df, df_])
38
64
 
39
65
 
40
66
 
41
- local = pytz.timezone("US/Central")
67
+ df.insert(df.columns.get_loc("CST")+1, 'Local Time', '')
42
68
 
43
- date_local = local.localize(date, is_dst=None)
69
+ df.insert(df.columns.get_loc("CST")+2, 'UTC Time', '')
44
70
 
71
+ df.insert(df.columns.get_loc("CST")+3, 'Unixtime', '')
72
+
73
+
74
+
75
+
76
+
77
+ for i, row in df.iterrows():
78
+
79
+ year = int(row['Year']) #2018
80
+
81
+ doy = int(row['DOY']) #244
82
+
83
+ hour = int(np.floor(row['CST']/100)) #0
84
+
85
+ min = int(row['CST']) -100*hour #0
86
+
87
+
88
+
89
+ date = datetime.datetime(year, 1, 1) +datetime.timedelta(days=doy-1, hours=hour, minutes=min )
90
+
91
+ #print(date) #この行を挿入するとエラーが消滅する
92
+
93
+
94
+
95
+ local = pytz.timezone("US/Central")
96
+
97
+ date_local = local.localize(date, is_dst=None)
98
+
45
- date_utc = date_local.astimezone(pytz.utc)
99
+ date_utc = date_local.astimezone(pytz.utc)
100
+
101
+ unixtime = date_utc.timestamp() # https://www.tutorialspoint.com/How-to-convert-Python-date-to-Unix-timestamp
102
+
103
+ row['Local Time'] = date
104
+
105
+ row['UTC Time'] = date_utc
106
+
107
+ row['Unixtime'] = unixtime
108
+
109
+ df
46
110
 
47
111
  ```
48
112