Housing Crisis

Project Info

Team Grey thumbnail

Project Description


Hi, my name is Will and my entry is a visualization of properties within the city of Hobart that could be subdivided to alleviate the housing crisis the city is currently facing. I used the several shapefiles containing zoning polygons, and property parcels and information.
The interactive map I created shows properties with a calculated area two times greater than the minimum area required for a subdivided lot given the property’s zoning – plus 150 SQM for common property (driveways).
It was difficult to determine which zoning scheme each property fell under. To do this I used the property’s coordinates to determine which zoning polygon each property appeared within. Armed with this information, I could determine what the minimum lot size would be per property.
I filtered out those properties whose area was insufficient. For the purposes of demonstration, I only used a handful of zones with the City of Hobart but there’s no reason this map couldn’t be extended to include all of Tasmania.
The attached map could be used by property owners, investors and developers to help identify those properties that could be subdivided. While investors and subdivisions are often the source much community anxiety, Hobart is in the midst of a housing crisis and we need more homes. My map will help facilitate the subdivision process.
I didn’t add all the features I wanted. I ran out of time. I wanted to calculate the frontage of each property by summing the length of a property’s intersection with the adjacent road. This would allow me to filter out those properties with an insufficient frontage. Currently, the map shows too many properties that have insufficient frontages to be truly useful. An interim work around would be to increase the area requirement of properties.
I also wanted to write a code that determined whether the properties included on the map were currently listed for sale, and if so, their asking prices.


Data Story



title: "Tasmanian Developable Properties"
author: "William Farrell"
date: "9/7/2019"

output: html_document

```{r warning=FALSE, include=FALSE}
library(tidyverse)
library(rgdal)
library(tmap)
library(readxl)
library(jsonlite)
library(leaflet)
library(sf)
library(spatialEco)
library(janitor)
library(rgeos)
library(rmapshaper)
library(sp)

tmap_mode("view")
```

```{r include=FALSE}

Load Zoning Data

Zoning <- readOGR(dsn="D:/Downloads/INTERIMPLANNINGSCHEMEZONINGSTATEWIDE",layer="interimplanningschemezoningstatewide",stringsAsFactors=FALSE)

Load Hobart Data

Hobart <- readOGR(dsn="D:/Downloads/LISTPARCELSHOBART", layer="listparcelshobart",stringsAsFactors=FALSE)

Create Roads shape

Roads <- Hobart[strdetect(Hobart@data$CADTYPE2,"Road"),]

Load Tasmanian Addressses Data

Address <- readOGR(dsn="D:/Downloads/LISTADDRESSPOINTSSTATEWIDE",layer="listaddresspointsstatewide",stringsAsFactors=FALSE)

Load minimum land sizes for subdivision by planning zone

zoneMinLand <- read_csv("zoneMinLand.csv")

Tasmania <- raster::bind(Hobart,BreakoDay)

```

```{r, Assign Zonings to each property}

Convert to sf-objects

Address.sf <- stassf(Address)
Zoning.sf <- stassf(Zoning)

Join zoning to addresses

addressZoning <- st_join(Address.sf,Zoning.sf)

Filter property types of interest

Resi <- c("APARTMENT","HOUSE","UNIT","TOWNHOUSE","FLAT")
addressZoning <- filter(addressZoning,
(addressZoning$UNITTYPE %in% Resi | is.na(addressZoning$UNITTYPE))
&
(addressZoning$PID>0)
)

Reduce columns

addressZoning <- select(addressZoning,PID,UNITNUMB,STNOFROM,NO1SUFFIX,STNOTO,NO2SUFFIX,STREET, STTYCODE, STTYPE,ST_SUFFIX,LOCALITY,STATE,POSTCODE,ZONE,PLANSCHEME)

addressHobart <- Hobart[Hobart@data$CAD_TYPE1=="Private Parcel",]
addressHobart@data$PID <- as.numeric(addressHobart@data$PID)

Reduce columns

addressHobart@data <- select(addressHobart@data,PID,VOLUME,FOLIO,CREATEDON,COMPAREA)

addressHobart@data <- leftjoin(addressHobart@data,addressZoning,by=c("PID"))
addressHobart@data <- left
join(addressHobart@data,zoneMinLand,by = c("ZONE", "PLANSCHEME"))

addressHobart <- addressHobart[!is.na(addressHobart@data$MINLANDSQM),]
addressHobart <- addressHobart[(addressHobart@data$COMPAREA/2+150>addressHobart@data$MINLANDSQM),]
addressHobart@data$PID <- as.character(addressHobart@data$PID)
addressHobart@data <- addressHobart@data %>% select(-geometry)
addressHobart@data$Address <- paste(addressHobart@data$ST
NOFROM,addressHobart@data$STREET,addressHobart@data$STTY_CODE,addressHobart@data$LOCALITY,addressHobart@data$POSTCODE)
addressHobart@data$Title <- paste(addressHobart@data$VOLUME,addressHobart@data$FOLIO,sep="/")

```

```{r, Map}

Map <- tmbasemap(leaflet::providers$Esri.WorldImagery) +
tm
shape(addressHobart,bbox = "Tasmania") +
tmpolygons("ZONE",alpha = 0.5,popup.vars = c("PID","Title","Address",'Calculated Area'="COMPAREA",Zone = "ZONE",'Minimum Subdivision' = "MINLANDSQM"))

Map

tmap_save(Map,paste("Housing Crisis (",Sys.Date(),").html",sep = ""))

```


Evidence of Work

Video

Team DataSets

LIST Cadastral Parcels

Data Set

LIST Address Points

Data Set

Challenges

Best Use of Tasmanian Spatial Data

Region: Tasmania

Challenge

Most Tasmanian Commercial Benefit

Region: Tasmania

Challenge

Back to Projects