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.5.tar.gz (34.4 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.5-py3-none-any.whl (42.2 kB view details)

Uploaded Python 3

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

Hashes for smellscapy-0.2.5.tar.gz
Algorithm Hash digest
SHA256 edcfc06398a356ad799763c08dc4175e10dcb9cb3cd4441451216e95f872d567
MD5 a075f09550aaa592c98e9da5dfef21c9
BLAKE2b-256 de6bc30265b21ffeb1b496fc4d697e338b3b9b49d26b8071995756e1e0cabf8c

See more details on using hashes here.

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

Hashes for smellscapy-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ee22791a453d4232753d70b4cd3a57f991759fa03ad1aa60dc7e202c9b09c1b9
MD5 bc008d20a4ca62de047de2fea9b2c099
BLAKE2b-256 ef1594973fac7b42ffe1119744476834a28af6a8f26df331a9e58fcf517fa116

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