Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 5 Next »

General Information

Instrument: 3 Axis Ultrasonic Anemometer 1590-PK-020/w with 4 14-bit analog outputs

Manual: WindMaster

Current Device Status (12/2/2021)

Analog output settings are configured to read out U, V, W, and sonic temperature at 32 Hz with an output range of 0-5 V. For U, V, W, this range has been set to correspond to -5 to +5 m/s and for temperature this range corresponds to -40 to 70 degrees C.

Analog outputs are then connected to the T7:
U - channel 1 - AIN0
V - channel 2 - AIN1
W - channel 3 - AIN2
sonic speed - channel 4 - AIN3

Sample Dataset taken over 10 min:

image.png

And zoomed in to ~half a second of data taking:

image.png

Relevant code for analyzing binary datafile

# -*- coding: utf-8 -*-
"""
Created on Tue Nov 30 02:11:06 2021
​
@author: brodi
"""
​
import pandas as pd
from sqlalchemy import create_engine
​
def load_pd(db_fi: str, table: str) -> pd.DataFrame:
    """
    loads pandas df from db given table name
    """
    engine = create_engine(db_fi, echo = False)
    with engine.connect() as sqlite_connection:
        df = pd.read_sql(table, sqlite_connection)
        
    return df


If database file is named anemometer, for instance, you can load it into a dataframe and then convert the relevant voltage measurements into wind speed and temperature with:

# Load datafile into pandas data frame
db_fi = r"sqlite:///anemometer.db"
df = load_pd(df_fi, "anem")

# Add columns in correct units
# because the units are +/- 5 m/s, 0 to 5 V
df['vx_ms'] = (df.vx - 2.5) * 2
df['vy_ms'] = (df.vy - 2.5) * 2
df['vz_ms'] = (df.vz - 2.5) * 2

# because sonic temperature is measured on a scale of 0 to 5 V
# from -40 to 70 C
df['tsonic'] = -40 + df.vsonic/5 * 110

#Plot data
plt.plot(df.t, df.vx_ms, label = 'Vx')
plt.plot(df.t, df.vy_ms, label = 'Vy')
plt.plot(df.t, df.vz_ms, label = 'Vz')
# plt.plot(df.t, df.tsonic/8 - np.mean(df.tsonic/8), label = 'Temp')

plt.legend()
plt.xlabel('Time')
plt.ylabel('Wind Speed (m/s)')
plt.show()

plt.plot(df.t, df.tsonic)
plt.xlabel('Time')
plt.ylabel(r'Sonic Temperature ($^o$C)')
plt.show()

Which gives the first plots in the previous section.

Relevant pin connections (all of which are copied from the manual)

Output pins from the anemometer (p. 15 of manual):


To change the analog output settings, connect a RS 432 serial port to a windows computer and to the anemometer outputs. 

RS 432 serial port pin connections (p.32 of manual):

For the serial connector we were using, pin 2 was white, pin 3 was yellow, pin 5 was orange, but apparently this isn't necessarily generically true.

The windows computer should have WIND software downloaded on it. Follow p. 46 of the manual.


Mounting plate



  • No labels