360 images were provided through the Canvas dataset and unzipped for use in this task. These images were used to create a virtual tour using ThingLink. Due to limitations in access to 360 camera equipment, it was not possible to capture original images, so pre-collected dataset images were used instead.
ThingLink was used to construct a 360 virtual tour using the provided dataset. While the platform is effective for building interactive visual experiences, the lack of personally captured images reduced the ability to design a coherent spatial narrative. As a result, the tour felt less structured and more fragmented, as the images were not collected with a planned route or user experience in mind.
In future work, a more deliberate data collection process would be used, including an on-site walkthrough before capturing images. This would allow key focal points to be identified in advance and ensure a more logical and engaging flow through the virtual environment. Despite these limitations, the exercise demonstrated how 360 imagery can be used to construct immersive spatial experiences when combined with appropriate planning.
knitr::include_url("https://www.thinglink.com/view/scene/2073451483474428581")
A 3D model of a wooden pole approximately 3 feet in height was created using 3DF Zephyr. A total of 30 images were captured around the object from multiple angles to ensure sufficient overlap for reconstruction.
During image acquisition, maintaining consistent lighting and camera distance proved challenging. Variations in lighting conditions and slight inconsistencies in positioning resulted in occasional blur and minor scaling inconsistencies.
The images were processed using the standard photogrammetry pipeline, including image alignment, dense point cloud generation, mesh creation, and model cleaning. A scale factor of approximately 5.0952 was applied within the software to ensure correct proportional scaling of the model.
The final model was uploaded to Sketchfab and can be viewed here: https://skfb.ly/pJ8Hv
Figure 1: Initial image set used for photogrammetry
reconstruction
Figure 2: Initial base mesh generated after image alignment
Figure 3: Dense point cloud and mesh reconstruction stage
Figure 4: Bounding box used to define object boundaries
Figure 5: Manual cleaning of unwanted geometry using lasso selection
Figure 6: Mesh after removal of unwanted artefacts
Figure 7: Final polygon mesh generation stage
Figure 8: Fully textured final 3D model
The model demonstrates strong visual quality, with the wooden pole clearly recognisable and texture mapping effectively applied. Minor inconsistencies are present due to lighting variations during image capture, but overall rendering is satisfactory.
The geometric structure of the pole is accurately reconstructed, with the cylindrical form preserved effectively. The applied scale factor (5.0952) improved real-world proportional accuracy. Slight distortions may still be observed in less-defined regions.
The model is mostly complete; however, gaps exist at the base of the pole where it was embedded into the ground. These areas could not be captured during image acquisition, resulting in missing geometry. Small discontinuities are also visible due to incomplete angular coverage.
The inability to manually reconstruct or fill these gaps within the software further limited completeness.
This model is suitable for visualisation, educational demonstrations, and basic digital representation where precise measurement is not required.
However, it is not suitable for engineering, surveying, or structural analysis due to missing geometry and minor reconstruction inaccuracies. Variations in lighting and incomplete surface capture reduce its reliability for precision applications.
Scaling this workflow to larger objects or environments would significantly increase the number of images required to maintain sufficient overlap and reconstruction accuracy. This would also increase processing time and computational demand.
At larger scales, maintaining consistent lighting, distance, and coverage becomes more difficult, which may reduce model quality. Hardware limitations may also become a constraint when processing large datasets.
These factors highlight the importance of careful planning and controlled conditions in photogrammetry workflows.
The data was collected using an Arduino-based environmental sensing system. A temperature sensor was used to record resistance and voltage values under three controlled conditions: room temperature, ice bath, and warm water bath.
The dataset was exported into an Excel file for further analysis in RStudio.
A calibration plot was generated to examine the relationship between resistance and temperature.
## `geom_smooth()` using formula = 'y ~ x'
Interpretation:
The plot shows a clear inverse relationship between resistance and
temperature, which is consistent with thermistor behaviour.
##
## Call:
## lm(formula = temp ~ resistance, data = sensor_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.219 -5.112 2.140 2.720 4.005
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.788e+01 1.484e+00 32.27 <2e-16 ***
## resistance -1.856e-03 8.596e-05 -21.59 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.784 on 28 degrees of freedom
## Multiple R-squared: 0.9434, Adjusted R-squared: 0.9413
## F-statistic: 466.4 on 1 and 28 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = temp ~ poly(resistance, 2), data = sensor_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.29640 -0.08061 -0.00756 0.02565 1.16770
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 19.52667 0.04663 418.73 <2e-16 ***
## poly(resistance, 2)1 -81.71884 0.25542 -319.94 <2e-16 ***
## poly(resistance, 2)2 19.97968 0.25542 78.22 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2554 on 27 degrees of freedom
## Multiple R-squared: 0.9998, Adjusted R-squared: 0.9997
## F-statistic: 5.424e+04 on 2 and 27 DF, p-value: < 2.2e-16
rmse <- function(actual, predicted){
sqrt(mean((actual - predicted)^2))
}
sensor_data$pred_lm <- predict(model_lm)
sensor_data$pred_poly <- predict(model_poly)
data.frame(
Model = c("Linear", "Polynomial"),
RMSE = c(
rmse(sensor_data$temp, sensor_data$pred_lm),
rmse(sensor_data$temp, sensor_data$pred_poly)
)
)
To analyse resolution effects, simulated ADC data was used to compare 8-bit, 10-bit, and 12-bit systems.
adc_data <- data.frame(
resolution = rep(c("8-bit","10-bit","12-bit"), each = 10),
value = c(
rnorm(10, 25, 2),
rnorm(10, 25, 1),
rnorm(10, 25, 0.5)
)
)
The Arduino-based sensor system provided reliable environmental data for calibration analysis. The results confirmed the expected inverse relationship between resistance and temperature.
The polynomial model demonstrated a slightly better fit than the linear model, as indicated by higher R² and lower RMSE values.
The ADC experiment showed that increasing resolution improves measurement stability, with 12-bit resolution producing the least variability.
Overall, while the system is effective for educational and prototyping purposes, improvements in calibration accuracy and sensor stability would be required for high-precision scientific applications.
## Reading layer `Sutton Park Boundary_region' from data source
## `C:\Users\Student\OneDrive\Documents\Digital Lab-Book (Sophia I. Ramcharan)\Section 4 data\Sutton Park Boundary_region.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 1 feature and 1 field
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: 408271.9 ymin: 295081.1 xmax: 411691 ymax: 298989.2
## Projected CRS: OSGB36 / British National Grid
ggplot() +
geom_sf(data = boundary, fill = "lightgrey", color = "black") +
geom_sf(data = photo_clusters_final,
aes(color = factor(cluster)),
size = 2,
alpha = 0.7) +
labs(
title = "Thematic Photo Clusters in Sutton Park",
color = "Cluster"
) +
theme_minimal()
##
## 1
## 117
This analysis applied text mining and sentiment analysis to photographic metadata by combining titles, descriptions, and tags into a single text field. Sentiment scores were generated using the AFINN lexicon and aggregated by image, then linked to cluster groupings for comparison.
A key limitation was data access, as Flickr data could not be directly retrieved due to restricted (paid) access. Therefore, the analysis was completed using a pre-existing dataset provided in a PDF, which limited the scope and depth of available metadata.
The spatial distribution of the data showed clustering of photos in specific areas, suggesting uneven spatial coverage likely influenced by accessibility and points of interest within the study area. Sentiment also varied between clusters, indicating that some areas were associated with more positive or negative textual descriptions, although these patterns are influenced by the subjective nature of user-generated content.
Additional challenges included handling the dataset’s spatial (sf) structure, which initially prevented standard joins and was resolved using st_drop_geometry(), as well as minor issues with variable naming during processing.
Alternative approaches that could improve this analysis include using additional APIs such as OpenStreetMap or Google Places, or applying AI-based image classification techniques to analyse visual content directly rather than relying solely on textual metadata. Overall, the workflow demonstrates how unstructured data can be transformed into meaningful spatial and sentiment-based insights, though results are constrained by data quality and accessibility limitations.
The primary objective of this project was to develop a proof-of-concept analysis investigating how individuals interact with and perceive urban green spaces, specifically using digital data from Sutton Park. By combining spatial analysis with text-based sentiment analysis, the project explored the relationship between geographical location (where photos are taken) and emotional tone (how those places are described). This integrated workflow demonstrates the synthesis of multiple data science techniques, moving from raw digital traces into structured representations (text, spatial coordinates, and clusters) and ultimately into interpretable analytical outputs.
The methodology integrated spatial data analysis, text mining, and sentiment analysis to process what is commonly referred to as Big Data, characterised by high volume (large numbers of records), velocity (rapidly generated user content), and variety (mixed structured and unstructured data such as text and spatial coordinates).
Photographic metadata, including titles, descriptions, and tags, was combined and processed using tokenisation to break text into individual words. Sentiment analysis was then conducted using the AFINN lexicon, which assigns numerical polarity values to words in order to generate an overall sentiment score per image.
Spatial analysis was used to map image locations and group them into clusters, enabling comparison of sentiment across different zones of the park. This allowed for multi-layered interpretation combining both geographical patterns and textual meaning, reflecting contemporary data-driven approaches where multiple digital sources are integrated for environmental analysis.
This analysis was guided by core ethical principles of responsible data use, including minimizing harm and ensuring respect for individuals whose data is represented. Several key issues were identified.
Firstly, Flickr data is user-generated, meaning it is subjective, inconsistent, and not originally created for research purposes. This introduces bias in both spatial distribution and textual interpretation. Secondly, reflexive awareness is necessary, as outlined in Data Feminism approaches, which emphasise acknowledging the limitations and power structures embedded within datasets and analytical tools.
Additionally, geolocated data raises privacy concerns related to surveillance creep, where spatial traces of human activity may be unintentionally analysed. The inability to access full Flickr API data also highlights issues of data inequality and partial representation, as only a limited dataset was available. Finally, ethical considerations around consent are important, as users may not fully anticipate their content being used in academic analysis.
The project successfully demonstrated the integration of spatial and textual analysis to identify patterns in both photo distribution and sentiment across Sutton Park. The results suggest that certain areas of the park are more frequently photographed and may be associated with differing emotional tones, offering insight into how urban green spaces are experienced.
However, the reliability of sentiment analysis is limited by the ambiguity and variability of human-generated text, as well as the constraints of using a restricted dataset rather than full Flickr access. This introduces uncertainty in both representativeness and interpretation.
Future improvements should move beyond purely extractive data approaches by integrating additional datasets such as OpenStreetMap to reduce spatial bias and address “sensor deserts” where data is sparse. The use of AI-based image recognition could also enhance analysis by incorporating visual features rather than relying solely on text, although this must be critically assessed for embedded algorithmic bias. Overall, future iterations should be supported by stronger ethical governance, including formal research ethics review, to ensure responsible use of digital environmental data.