Skip to main content

package for reading radiosonde data

Project description

bsod2

BSoD2(BalloonScope on Deck 2) is a package in Python for reading radiosonde data.

Requirements

  • numpy == 2.4.3
  • pandas == 3.0.2
  • xarray == 2026.4.0
  • metpy == 1.7.1
  • tqdm == 4.67.3

Installation

This package can be installed from PyPI.

pip install bsod2

Usage

The only functionality provided by this package is the bsod2.Sondeset class, which retrieves radiosonde data and performs quality control.

Basic Sondeset construction and methods

Initialize the class with the file path to the raw data.

from pathlib import Path
from bsod2 import Sondeset

ss = Sondeset(Path("Seisuimaru2407/raw_data/F2024061806S1101771.CSV"))
print(ss)
>>> N=1, sonde_no=["1101771"]

If a directory path is given, all sonde data files (F*S*.CSV) in that directory are loaded.

ss = Sondeset(Path("Seisuimaru2407/raw_data"))
print(ss)
>>> N=8, sonde_no=["1101771", "1101323", "1101386", "1101322", "1101327", "1101772", "1101388", "1101326"]

Individual data items can be accessed by indexing.

print(ss[0])
>>> Sonde(sonde_no=1101771, launch_time=2024-06-18 06:01:42, product_name=iMS-100 , num_records=4174)

Accessors for individual data items

The following accessors can be used to access individual data items.
Most accessors return values with metpy.units.units attached.

Accessor units Description Example
df NOne quality-controlled pandas.DataFrame ss[0].df
time None Time ss[0].time
lat units("deg") Latitude ss[0].lat
lon units("deg") Longitude ss[0].lon
x units("m") X-displacement from the launch point ss[0].x
y units("m") Y-displacement from the launch point ss[0].y
z units("m") Altitude ss[0].z
p units("hPa") Pressure ss[0].p
t units("degC") Temperature ss[0].temp
rh units("percents") Relative humidity ss[0].rh
wd units("deg") Wind direction ss[0].wd
ws units("m/s") Wind speed ss[0].ws

Save as CSV

Save the quality-controlled DataFrame as a CSV file to the specified file path using the save_df method.

ss[0].save_df(Path("output.csv"))

Altitude or pressure interpolation

Interpolate linearly onto an evenly spaced grid in pressure("p") or altitude("z") using the interp argument.

ss = Sondeset(DIR_PATH,interp="p")

By default, the interpolated pressure axis ranges from 50 to 1,100 hPa at 1 hPa intervals, or the height axis ranges from 0 m to 20,000 m at 10 m intervals.
Values outside the original data range are filled with NaN. The range and resolution of the interpolation axes can be specified using the following arguments.

Argument Description Default
interp Name of the interpolation axis. If None, interpolation is not performed. None
interp_pmin Minimum value of the interpolated pressure axis (hPa) 50
interp_pmax Maximum value of the interpolated pressure axis (hPa) 1100
interp_dp Step size of the interpolated pressure axis (hPa) 1
interp_zmin Minimum value of the interpolated height axis (m) 0
interp_zmax Maximum value of the interpolated height axis (m) 20000
interp_dz Step size of the interpolated height axis (m) 10

Interpolated and combined xarray.Dataset

Sondeset.ds provides access to an xarray.Dataset containing interpolated and combined radiosonde data.

ss = Sondeset(Path("Seisuimaru2407/raw_data", interp="z"))
ss.ds
>>> 
xarray.Dataset> Size: 785kB
Dimensions:      (n: 8, z: 2001)
Coordinates:
  * n            (n) <U7 224B '1101771' '1101323' ... '1101388' '1101326'
  * z            (z) float64 16kB 0.0 10.0 20.0 ... 1.998e+04 1.999e+04 2e+04
Data variables:
    p            (n, z) float64 128kB nan 1.007e+03 1.005e+03 ... nan nan nan
    tmp          (n, z) float64 128kB nan 18.76 18.93 19.0 ... nan nan nan nan
    wd           (n, z) float64 128kB nan 270.4 252.9 250.7 ... nan nan nan nan
    ws           (n, z) float64 128kB nan 2.426 2.09 2.16 ... nan nan nan nan
    rh           (n, z) float64 128kB nan 89.21 89.78 90.21 ... nan nan nan nan
    launch_time  (n) datetime64[us] 64B 2024-06-18T06:01:42 ... 2024-06-18T14...
    time         (n, z) datetime64[ns] 128kB 2024-06-18T06:01:42 ... 2024-06-...

Sample scrips

See sample/sample.md for sample scripts.

License

This project is distributed under the terms of the GNU General Public License, Version 3 (GPLv3).
See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bsod2-0.2.1.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bsod2-0.2.1-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file bsod2-0.2.1.tar.gz.

File metadata

  • Download URL: bsod2-0.2.1.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bsod2-0.2.1.tar.gz
Algorithm Hash digest
SHA256 a5b06c3829957c383482583e2e4093214dc150de77cf19c4a0ed3e37537b1482
MD5 e4c12d61359e9233d7d1fbf26a37f856
BLAKE2b-256 51f4ec4fc61666732852bd110338a28aa1241fb0815792d596556be92df9c6e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsod2-0.2.1.tar.gz:

Publisher: publish.yml on sotomita/bsod2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bsod2-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: bsod2-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bsod2-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2bdf320ac255e3d9c8daa51111f6926b658d17935945ca6089753d41e2660469
MD5 1702c5f784ceb8def320f76fe76fbbc8
BLAKE2b-256 41d6cf21a2fba8a93d995137860c977e35ac38e885fa300c5bb481296c9a0685

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsod2-0.2.1-py3-none-any.whl:

Publisher: publish.yml on sotomita/bsod2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page