miniskill

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
miniskill [2022/02/06 12:57] satoshiminiskill [2022/02/06 14:29] (現在) – [SCORER Edge SDKからAWS S3への接続を設定する] satoshi
行 68: 行 68:
 pip install boto3 pip install boto3
 </code> </code>
-これにて準備完了です。次に下記のPythonスクリプトを実行すると指定の日付間、指定のカメラストリームのデータが受信可能になります。+これにて準備完了です。次に下記のPythonスクリプトを実行すると指定の日付間、指定のカメラストリームのデータが受信可能になります。\\ 
 +スクリプトのある階層に「movielist」フォルダを作成すれば動作します。\\ 
 +<sxh Python; titile:moviedownload.py> 
 +from boto3 import Session 
 +import boto3 
 +import datetime 
 +from dateutil.relativedelta import relativedelta 
 +import tarfile 
 +from tarfile import TarInfo 
 +import gzip 
 +import json 
 +import os 
 +import cv2 
 + 
 +S3Bucket    = 'future-standard.XXXX' #ユーザーの指定するバケット名 
 +S3KeyPrefix = 'export/SourceData/' #SourceDataの位置までを指定 エクスポート時にexportプレフィックスを設定した時の例 
 +device_list=['02-410645-D-1'] #デバイス名。S3 Exportの種類(デバイス名かIDか)に応じて指定 
 +sday = datetime.date(2022, 2, 1) #対象期間開始日 
 +eday = datetime.date(2022, 2, 2) #対象期間終了日 
 +stime = datetime.time(7,0,0)  #対象開始時間 
 +etime = datetime.time(20,0,0)  #対象終了時間 
 + 
 +timearr=[] 
 +tmptime = datetime.datetime.combine(datetime.date.today(), stime) 
 +edatetime = datetime.datetime.combine(datetime.date.today(), etime) 
 +while tmptime<=edatetime: 
 +    timearr.append(tmptime) 
 +    tmptime = tmptime + datetime.timedelta(hours=1) 
 +print(timearr)   
 + 
 +daynum = (eday-sday).days+1 
 + 
 +date1=sday 
 +date_list = [] 
 +for i in range(daynum): 
 +    date_list.append(date1.strftime('%Y-%m-%d')) 
 +    date1 = date1 + relativedelta(days=1) 
 +print('target date'
 +print(date_list) 
 + 
 +s3client = boto3.client('s3'
 + 
 + 
 +beginning_of_the_last_month = sday 
 +end_of_the_last_month = eday 
 +daynum = (end_of_the_last_month-beginning_of_the_last_month).days+1 
 + 
 +print("from"
 +print(beginning_of_the_last_month) 
 +print("to"
 +print(end_of_the_last_month) 
 +date1=beginning_of_the_last_month 
 +date_list = [] 
 + 
 +for i in range(daynum): 
 +    print(date1) 
 +    date_list.append(date1.strftime('%Y-%m-%d')) 
 +    date1 = date1 + relativedelta(days=1) 
 + 
 + 
 +for device in device_list: 
 +    for date2 in date_list: 
 + 
 +        loopPrefix = S3KeyPrefix+device+"/"+ str(date2) +"/videos/upload_" 
 +        
 +        paginator = s3client.get_paginator('list_objects_v2'
 +        # フィルタリング設定 
 +        operation_parameters = { 
 +            'Bucket': S3Bucket, 
 +            'Prefix': loopPrefix 
 +        } 
 + 
 +        page_iterator = paginator.paginate(**operation_parameters) 
 +        dirpath = "movielist/"+device+"/" 
 +        os.makedirs(dirpath, exist_ok=True) 
 +        for page in page_iterator: 
 +            if 'Contents' in page: 
 +                for o in page['Contents']: 
 +                    key = o.get('Key'
 +                    filepath=key.split('/'
 +                    ttime = datetime.time(filepath[15:16], filepath[18:19], filepath[21:22]) 
 +                    if os.path.exists(dirpath+filepath[5]): 
 +                        continue 
 +                    if ttime > stime and ttime < etime: 
 +                        print(device+"/"+date2+"/"+filepath[5]) 
 +                        s3client.download_file(Bucket=S3Bucket,Filename=dirpath+filepath[5], Key=key) 
 +</sxh> 
 + 
 +===== SCORER APIによる一括解析 ===== 
 +(執筆中) 
  
  
  • miniskill.1644119830.txt.gz
  • 最終更新: 2022/02/06 12:57
  • by satoshi