Skip to main content

A python library for analysing and representing indoor smellscape perceptual data.

Project description

Smellscapy Logo

Smellscapy

PyPI version Documentation status License

SmellscaPy is a Python library for analysing and representing indoor smellscape perceptual data.
It provides tools for data validation, calculation of perceptual indices, visualization, descriptive statistics and modelling to support reproducible research in smellscape studies.

Features

  • Data validation & preprocessing of smellscape survey datasets
  • Computation of perceptual indicators (i.e., pleasantness, presence)
  • Visualizations: scatter plots, density plots, simplified density plots, dynamic plots
  • Integration with the Python scientific stack (Pandas, NumPy, Matplotlib)
  • Ready-to-use example datasets for tutorials and testing
  • Analysis: descriptive statistics

Installation

Smellscapy can be installed with pip:

pip install smellscapy

Requires Python 3.12.9+.

Quick Start

Here’s a minimal example using the included sample dataset.
It loads the data, validates it, computes perceptual indicators, and generates simple visualizations:

from smellscapy.surveys import validate
from smellscapy.databases.DataExample import load_example_data_Eurac
from smellscapy.calculations import calculate_pleasantness, calculate_presence
from smellscapy.plotting.scatter import plot_scatter
from smellscapy.plotting.simple_density import plot_simple_density

# Load example dataset
df = load_example_data_Eurac()

# Validate data
df, excl_df = validate(df)

# Compute perceptual indices
df = calculate_pleasantness(df)
df = calculate_presence(df)

# Visualization
plot_scatter(df)
plot_simple_density(df)
plot_density(df)
plot_dynamic(df)

#Analysis
df_stat = descriptive_statistics(df)

Tutorials for using Smellscapy can be found in the documentation.

Citation

If you are using Smellscapy in your research, please help our scientific visibility by citing our work! Please include a citation to our accompanying paper:

G. Torriani, R. Albatici, F. Babich, M. Vescovi, M. Zampini, S. Torresin, Developing a principal components model of indoor smellscape perception in office buildings, Build Environ 279 (2025) 113044. https://doi.org/10.1016/j.buildenv.2025.113044.

Contributing

If you would like to contribute or if you have any bugs you have found while using `Smellscapy', please feel free to get in touch or submit an issue or pull request!

Licence

This project is licensed under the BSD 3-Clause License. Please see LICENSE for licence guidelines.

Aknowledgment

The smellscape-representation methods implemented in the plotting functions of SmellscaPy are derived and adapted from the probabilistic soundscape framework described in the publication by Andrew Mitchell et al. [1] and implemented in the Soundscapy open-source library (c) 2025, Andrew Mitchell All rights reserved [2] . We gratefully acknowledge the authors of Soundscapy for their conceptual and methodological foundation, which significantly informed the development of the smellscape visualisation tools in this project.

  1. Mitchell, A., Aletta, F., & Kang, J. (2022). How to analyse and represent quantitative soundscape data. JASA Express Letters, 2, 37201.
  2. Mitchell, A. (2024, October). Soundscapy: A python package for soundscape assessment and analysis. In INTER-NOISE and NOISE-CON Congress and Conference Proceedings (Vol. 270, No. 7, pp. 4029-4039). Institute of Noise Control Engineering.

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

smellscapy-0.2.6.tar.gz (34.5 kB view details)

Uploaded Source

Built Distribution

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

smellscapy-0.2.6-py3-none-any.whl (42.3 kB view details)

Uploaded Python 3

File details

Details for the file smellscapy-0.2.6.tar.gz.

File metadata

  • Download URL: smellscapy-0.2.6.tar.gz
  • Upload date:
  • Size: 34.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for smellscapy-0.2.6.tar.gz
Algorithm Hash digest
SHA256 f6bc7f5af8ead1b53f6b65a57506fbbac267387a719844da3c932f64c8b9a24e
MD5 7c07c69746a3971e790f981f0722871c
BLAKE2b-256 4fe0174c2e57e81fe8cb8eb1d178e69439ce2cee57dd195257c2e93de1d12ad4

See more details on using hashes here.

File details

Details for the file smellscapy-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: smellscapy-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 42.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for smellscapy-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4150d142558c686f9a52b326e9e3c6054e4806754e8053fff03ae4a65063957c
MD5 ef1df981bc8b704f22336ee2622e7184
BLAKE2b-256 1fed361f2350e362998f091cf250b1db0c298ae51e662158413795ea5e40ab45

See more details on using hashes here.

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