python 은 분 데이터 기반 으로 시간 풍속, 풍향 을 계산 하 는 데 이 터 를 실현 합 니 다.

오늘 기상 데이터 세트 를 처 리 했 습 니 다. 우리 가 얻 은 데이터 세트 는 분 데이터 형식 이 고 시간 데이터 형식 으로 전환 해 야 합 니 다. 우 리 는 시간의 풍속 풍향 이 사실은 양자 분 데이터 의 평균 값 이 아니 라 는 것 을 알 고 있 습 니 다. 왜냐하면 한 시간 동안 모든 풍향 이 같은 방향 일 수 없 기 때문에 특정한 방향 에서 한 시간 동안 의 빈도 가 가장 높다 고 말 할 수 있 습 니 다.즉, 이 방 위 는 이 시간 내의 주 풍향 이 고 풍속 에 대한 계산 은 한 시간 동안 이 주 풍향 방위 상의 모든 분 풍속 데이터 의 평균 값 을 취한 다.
     위의 계산 방향 이 있 으 면 바로 실현 할 수 있 고 구체 적 으로 다음 과 같다.
#!usr/bin/env python
# encoding:utf-8
from __future__ import division

"""
__Author__:    
  :                 

    :
                      ,                          
"""




def windSpeedDirection(data_list):
    '''
                    
    data_list            :
    T,temperate,pressure,humidity,speed,direction
    '''
    data_dict = {}  #         ,                    
    for i in range(1,len(data_list)):
        T,temperate,pressure,humidity,speed,direction=data_list[i]
        hour=T.split(':')[0].strip()+':00:00'
        if hour in data_dict:
            data_dict[hour].append(data_list[i])
        else:
            data_dict[hour]=[data_list[i]]
    #                
    result={}
    for one_hour in data_dict:
        print 'one_hour: ',one_hour
        one_data=data_dict[one_hour]
        res_list=sorted(one_data,key=lambda i:i[0])  #        
        wd_list=[float(res_list[i][-1]) for i in range(len(res_list))]
        ws_list=[float(res_list[i][-2]) for i in range(len(res_list))]
        fwj_list=[degree2WindDirection(degree=one) for one in wd_list]
        fre_dict={}
        for one in fwj_list:
            if one in fre_dict:
                fre_dict[one]+=1
            else:
                fre_dict[one]=1
        fre_list=sorted(fre_dict.items(),key=lambda e:e[1],reverse=True)
        final_wd=fre_list[0][0]
        final_ws_list=[]
        for i in range(len(wd_list)):
            if degree2WindDirection(degree=wd_list[i])==final_wd:
                final_ws_list.append(ws_list[i])
        print final_ws_list
        ws=sum(final_ws_list)/len(final_ws_list)
        wd=windDirection2Degree(direction=final_wd)
        result[one_hour]=[ws,wd]
    return result


if __name__=='__main__':
    windSpeedDirection(data_list)

        전체적인 실현 사고방식 도 매우 간단 하 다. 상응하는 주석 은 이미 코드 안에 넣 었 기 때문에 더 이상 설명 을 하지 않 는 다.
        아름 답 고 충실 한 주말, 두 형 제 를 맞이 하고 두 형 제 를 보 냈 습 니 다. 시간 이 이렇게 바 쁩 니 다. 지금 나이 가 우리 가 걸음 을 멈 추고 추억 해 야 할 때 가 아 닐 수도 있 습 니 다. 그럼 열심히 노력 하 세 요. 화 이 팅!

좋은 웹페이지 즐겨찾기