A python library for analysing and representing indoor smellscape perceptual data.
Project description
Smellscapy
![PyPI version]
![Documentation Status]
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.
- Mitchell, A., Aletta, F., & Kang, J. (2022). How to analyse and represent quantitative soundscape data. JASA Express Letters, 2, 37201.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smellscapy-0.2.5.tar.gz.
File metadata
- Download URL: smellscapy-0.2.5.tar.gz
- Upload date:
- Size: 34.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edcfc06398a356ad799763c08dc4175e10dcb9cb3cd4441451216e95f872d567
|
|
| MD5 |
a075f09550aaa592c98e9da5dfef21c9
|
|
| BLAKE2b-256 |
de6bc30265b21ffeb1b496fc4d697e338b3b9b49d26b8071995756e1e0cabf8c
|
File details
Details for the file smellscapy-0.2.5-py3-none-any.whl.
File metadata
- Download URL: smellscapy-0.2.5-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee22791a453d4232753d70b4cd3a57f991759fa03ad1aa60dc7e202c9b09c1b9
|
|
| MD5 |
bc008d20a4ca62de047de2fea9b2c099
|
|
| BLAKE2b-256 |
ef1594973fac7b42ffe1119744476834a28af6a8f26df331a9e58fcf517fa116
|