1020/5000I am using a Young 86000 anemometer on a CR1000, and I am having the following problem: overall measurements are correct, but sometimes measurements are incorrect, with values above 75 m / s, even without apparent wind. I am using a 15 second scan. For wind measurements, the table collects the instantaneous value, direction and maximum wind (in one hour). Most often the error occurs at maximum wind, when it occurs at snapshot, the direction comes as NAN. In all there are 26 weather stations with this same problem. I have tried some solutions, such as setting values above 75 = NAN, but other bad values end up being measured at some point. Another curiosity, these errors usually occur at sequential times. An example of a station that has this problem (without the threshold I set at some 75 = NAN) is the one with Goes ID B0428FD8.
It follows programming that I am using, which even with some changes, still presenting such a problem.
Const Scanrate = 15 'Const Sens = 15.00 '****************************************** 'Publicacao do ID Public ID As String *8 'Publicacao das variaveis do Resultado Public ResultadoGoes 'Publicacao do Dia e Horario Public rTime(9) Public Date As String *10 Public Time As String *10 Alias rTime(1) = Year Alias rTime(2) = Month Alias rTime(3) = DOM Alias rTime(4) = Hour Alias rTime(5) = Minute Alias rTime(6) = Second 'Publicacao da tensao da bateria Public BattV Public BattV_s As String *7 Public Dest_BattV As Float Units BattV = Volts 'Publicacao da temp interna Public PTemp_C Public PTemp_C_s As String *7 Public Dest_PTemp_C As Float Units PTemp_C = Deg C 'Publicacao Umidade Interna da Caixa Public Enc_RH Public enc_rh_s As String *7 'Publicacao Chuva Public Rain Public Dest_Rain As Float Public Rain_s As String *7 Units Rain = mm 'Publicacao Temperaura do ar Public AirTc Public AirTc_Mx As String *7 Public Dest_AirTc_Mx As Float Public AirTC_Mm As String *7 Public Dest_AirTc_Mn As Float Public AirTc_s As String *7 Units AirTc = Deg C 'Publicacao da Umidade do AR Public RH Public RH_s As String *7 Public RH_Mx As String *7 Public RH_Mn As String *7 Public Dest_RH_Mx As Float Public Dest_RH_Mn As Float Units RH = % 'Publicacao do Ponto de Orvalho Public DewPt Public DewPt_Mn As String *7 Public DewPt_Mx As String *7 Public Dest_DewPt_Mn Public Dest_DewPt_Mx Public DewPt_s As String *7 'Publicacao Pressao Atmosferica Public BP_mbar_s As String *7 Public BP_mbar 'Publicacao Velocidade e Direcao do Vento Public RMY86000 (4) As Float Public Serial86000 As String *25 Public Wind_Speed_Mx As String *7 Public Dest_Wind_Speed_Medium As Float Public Dest_Wind_Speed_Mx As Float Public Dest_WindSpeed As Float Public WindSpeed_s As String *7 Public Dest_Wind_Direction As Float Public Wind_Direction_s As String *7 Alias RMY86000(2) = Wind_Speed Alias RMY86000(3) = Wind_Direction Alias RMY86000(4) = Status86004 Units Wind_Speed = m/s Units Wind_Direction = Deg 'Publicacao da Temperatura do Solo 'Sensor a 5 cm Public CS65X(6) Alias CS65X(1) = VWC Units VWC = % Public Dest_VWC As Float Public VWC_s As String *7 Alias CS65X(3) = T_05cm Public T_05cm_s As String *7 Units T_05cm = Deg C 'Sensor a 20 cm Public CS65X_2(6) Alias CS65X_2(1) = VWC_2 Units VWC_2 = % Public Dest_VWC_2 As Float Public VWC_s2 As String Public T_20cm_s As String *7 Alias CS65X_2(3) = T_20cm Units T_20cm = Deg C 'Sensor a 50 cm Public CS65X_3(6) Alias CS65X_3(1) = VWC_3 Units VWC_3 = % Public Dest_VWC_3 As Float Public VWC_s3 As String Alias CS65X_3(3) = T_50cm Public T_50cm_s As String *7 Units T_50cm = Deg C 'Publicacao Radiacao Solar Public SlrKJ_2 Public SlrkW_2 Public Dest_Slrkj As Float Public SlrKJ_s As String *7 Units SlrKJ_2=KJ/m^2 'Publicacao Saida de Dados Public Saida As String *7 'Publicacao dos espacos Public Space1 As String *2 Public Space2 As String *2 Public Space3 As String *2 Public Space4 As String *2 Public Space5 As String *2 Public Space6 As String *2 Public Space7 As String *2 Public Space8 As String *2 Public Space9 As String *2 Public Space10 As String *2 Public Space11 As String *2 Public Space12 As String *2 Public Space13 As String *2 Public Space14 As String *2 Public Space15 As String *2 Public Space16 As String *2 Public Space17 As String *2 Public Space18 As String *2 Public Space19 As String *2 Public Space20 As String *2 Public Space21 As String *2 Public Space22 As String *2 Public Space23 As String *2 Public Space24 As String *2 Public Space25 As String *2 Public Space26 As String *2 Public Space27 As String *2 '************************************************* DataTable(GOESENVIO_ABAETE,True,-1) DataInterval(0,1,Hr,10) 'Variaveis para analise dos parametros do ID Sample (1,ID,String) Sample (1,Space1,String) 'Variaveis para analise dos parametros da DATE Sample (1,Date,String) Sample (1,Space2,String) 'Variaveis para analise dos parametros da TIME Sample (1,Time,String) Sample (1,Space3,String) 'Variaveis para analise dos parametros da BATERIA Sample(1,BattV_s,String) Sample (1,Space4,String) 'Variaveis para analise dos parametros do sensor de TEMPERATURA INTERNA Sample (1,PTemp_C_s,String) Sample (1,Space5,String) 'Variaveis para analise dos parametros do sensor de UMIDADE INTERNA DA CAIXA Sample(1,enc_rh_s,String) Sample(1,Space6,String) 'Variaveis para analise dos parametros do pluviometro - CHUVA Sample(1,Rain_s,String) Sample(1,Space7,String) 'Variaveis para analise dos parametros de temperatura do ar Sample(1,AirTc_s,String) Sample (1,Space8,String) Sample(1,AirTc_Mx,String) Sample (1,Space9,String) Sample(1,AirTC_Mm,String) Sample (1,Space10,String) 'Variaveis para analise dos parametros de temperatura do ar Sample(1,RH_s,String) Sample (1,Space11,String) Sample(1,RH_Mx,String) Sample (1,Space12,String) Sample(1,RH_Mn,String) Sample (1,Space13,String) 'Variaveis para analise dos parametros de ponto de orvalho Sample(1,DewPt_s,String) Sample(1,Space14,String) Sample(1,DewPt_Mx,String) Sample(1,Space15,String) Sample(1,DewPt_Mn,String) Sample(1,Space16,String) 'Variaveis para analise dos parametros do sensor de pressao barometrica Sample(1,BP_mbar_s,String) Sample(1,Space17,String) 'Variaveis para analise dos parametros do sensor de velocidade de direcao do vento ultrassonico Sample (1,WindSpeed_s,String) Sample (1,Space18,String) Sample (1,Wind_Direction_s,String) Sample (1,Space19,String) Sample (1,Wind_Speed_Mx,String) Sample (1,Space20,String) 'Variaveis para analise dos parametros do sensor de temperatura do solo e Umidade do solo '***************Temperatura do Solo***************' 'Temperatura para 05 cm Sample(1,T_05cm_s,String) Sample (1,Space21,String) 'Temperatura para 20 cm Sample(1,T_20cm_s,String) Sample(1,Space22,String) 'Temperatura para 50 cm Sample(1,T_50cm_s,String) Sample(1,Space23,String) ''***************Umidade do Solo***************' Sample(1,VWC_s,String) Sample(1,Space24,String) Sample(1,VWC_s2,String) Sample(1,Space25,String) Sample(1,VWC_s3,String) Sample(1,Space26,String) 'Variaveis para analise dos parametros do sensor de radicao global Sample(1,SlrKJ_s,String) Sample (1,Space27,String) 'Caracter de Saida Sample (1,Saida,String) EndTable 'DataTable(teste,True,-1) 'DataInterval(0,30,Sec,10) 'Variaveis para analise dos parametros de temperatura do ar 'Sample(1,AirTc_s,String) 'Sample(1,AirTc_Mx,String) 'Sample(1,AirTC_Mm,String) 'Variaveis para analise dos parametros de temperatura do ar 'Sample(1,RH_s,String) 'Sample(1,RH_Mx,String) 'Sample(1,RH_Mn,String) 'EndTable '************************************************* BeginProg Scan(Scanrate,Sec,1,0) SerialOpen (Com4,9600,0,0,10000) '************************************************************************************** 'ID ID = "B042CCD2" 'SAIDA Saida = "/////" 'Espaco Space1 = " " Space2 = " " Space3 = " " Space4 = " " Space5 = " " Space6 = " " Space7 = " " Space8 = " " Space9 = " " Space10 = " " Space11 = " " Space12 = " " Space13 = " " Space14 = " " Space15 = " " Space16 = " " Space17 = " " Space18 = " " Space19 = " " Space20 = " " Space21 = " " Space22 = " " Space23 = " " Space24 = " " Space25 = " " Space26 = " " Space27 = " " '************************************************************************************** 'DATA E HORARIO RealTime (rTime) Date = FormatLong(rTime(3),"%02d")&FormatLong(rTime(2),"%02d")&rTime(1) Time = FormatLong(rTime(4),"%02d")&FormatLong(rTime(5),"%02d")&FormatLong(rTime(6),"%02d") 'TENSAO DA BATERIA Battery(BattV) AvgRun (Dest_BattV,1,BattV,240) BattV_s = FormatFloat(Dest_BattV,"%05.01f") 'TEMPERATURA INTERNA PanelTemp(PTemp_C,_60Hz) AvgRun (Dest_PTemp_C,1,PTemp_C,240) PTemp_C_s = FormatFloat(Dest_PTemp_C,"%05.01f") 'UMIDADE INTERNA DA CAIXA VoltSe(Enc_RH,1,mV2500,9,1,0,_60Hz,0.1,0) If Enc_RH>100 AND Enc_RH<103 Then Enc_RH=100 enc_rh_s = FormatFloat (Enc_RH,"%05.01f") 'CHUVA EM MM PulseCount(Rain,1,1,2,0,0.2,0) TotalRun (Dest_Rain,1,Rain,240) Rain_s = FormatFloat (Dest_Rain,"%05.01f") 'TEMPERATURA DO AR VoltSe(AirTc,1,mV2500,1,0,0,_60Hz,0.1,-40) AirTc_s = FormatFloat (AirTc,"%04.01f") MaxRun (Dest_AirTc_Mx,1,AirTc,240) AirTc_Mx = FormatFloat (Dest_AirTc_Mx,"%04.01f") MinRun (Dest_AirTc_Mn,1,AirTc,240) AirTC_Mm = FormatFloat (Dest_AirTc_Mn,"%04.01f") 'UMIDADE DO AR VoltSe(RH,1,mV2500,2,0,0,_60Hz,0.1,0) If RH>100 AND RH<103 Then RH=100 RH_s = FormatFloat (RH,"%05.01f") MaxRun (Dest_RH_Mx,1,RH,240) RH_Mx = FormatFloat (Dest_RH_Mx,"%05.01f") MinRun (Dest_RH_Mn,1,RH,240) RH_Mn = FormatFloat (Dest_RH_Mn,"%05.01f") 'PONTO DE ORVALHO DewPoint (DewPt,AirTc,RH) DewPt_s = FormatFloat (DewPt,"%04.01f") MaxRun (Dest_DewPt_Mx,1,DewPt,240) DewPt_Mx = FormatFloat (Dest_DewPt_Mx,"%04.01f") MinRun (Dest_DewPt_Mn,1,DewPt,240) DewPt_Mn = FormatFloat (Dest_DewPt_Mn,"%04.01f") 'PRESSAO ATMOSFERICA SDI12Recorder(BP_mbar,1,"1","M!",1,0,-1) BP_mbar_s = FormatFloat (BP_mbar,"%06.01f") 'DIRECAO E VELOCIDADE DO VENTO SerialOut (Com4,"M0!"+ CHR(13)," ",0,100) SerialIn (Serial86000,Com4,10,CHR(13),200) SplitStr (RMY86000(),Serial86000," ",4,0) SerialFlush (Com4) Dest_Wind_Direction = RMY86000(3) 'If Dest_Wind_Direction = NAN Then Dest_Wind_Direction = Dest_Wind_Direction_Med Descobrir como calcular Wind_Direction_s = FormatFloat (Dest_Wind_Direction,"%05.01f") Dest_WindSpeed = RMY86000(2) If Dest_WindSpeed > 75 Then Dest_WindSpeed = NAN 'If Dest_WindSpeed > 8,9 AND < 9,1 Then Dest_WindSpeed = NAN AvgRun (Dest_Wind_Speed_Medium,1,Dest_WindSpeed,4) If Dest_WindSpeed = NAN Then Dest_WindSpeed = Dest_Wind_Speed_Medium WindSpeed_s = FormatFloat (Dest_WindSpeed,"%05.01f") MaxRun (Dest_Wind_Speed_Mx,1,Dest_WindSpeed,240) Wind_Speed_Mx= FormatFloat (Dest_Wind_Speed_Mx,"%05.01f") 'TEMPERATURA E UMIDADE DO SOLO 'Sensor para 05 cm SDI12Recorder(CS65X(),3,"1","M1!",1,0,-1) Dest_VWC = CS65X(1) VWC_s = FormatFloat (Dest_VWC,"%05.01f") T_05cm = CS65X(3) T_05cm_s = FormatFloat (T_05cm,"%05.01f") 'Sensor para 20 cm SDI12Recorder(CS65X_2(),3,"2","M1!",1,0,-1) Dest_VWC_2 = CS65X_2(1) VWC_s2 = FormatFloat (Dest_VWC_2,"%05.01f") T_20cm = CS65X_2(3) T_20cm_s = FormatFloat (T_20cm,"%05.01f") 'Sensor para 50 cm SDI12Recorder(CS65X_3(),3,"3","M1!",1,0,-1) Dest_VWC_3 = CS65X_3(1) VWC_s3 = FormatFloat (Dest_VWC_3,"%05.01f") T_50cm = CS65X_3(3) T_50cm_s = FormatFloat (T_50cm,"%05.01f") 'RADIACAO SOLAR Atualizar para o CL200 VoltDiff(SlrkW_2,1,mV7_5,3,True,0,_60Hz,1,0) If SlrkW_2<0 Then SlrkW_2=0 'Transformando de MegaJoule para KiloJoule SlrkW_2 = (SlrkW_2*200)/1000 SlrKJ_2 = (SlrkW_2*Scanrate) TotalRun (Dest_Slrkj,1,SlrKJ_2,240) SlrKJ_s = FormatFloat (Dest_Slrkj,"%06.01f") 'CARACTER DE SAIDA Saida = "//////" 'TABELA DE TRANSMISSAO CallTable GOESENVIO_ABAETE 'CallTable teste If TimeIntoInterval (0,1,Hr) Then GOESData (ResultadoGoes,GOESENVIO_ABAETE,1,0,1) End If NextScan 'SlowSequence 'Scan(17,min,1,0) 'SW12(0) 'Delay(0,5,sec) 'SW12(1) 'NextScan EndProg
Analyzing the data, I realized that the wrong wind values do not exceed 359. Probably for some reason he is reading the direction as speed. But this only occurs a few times.