cleaned up
This commit is contained in:
parent
f881175b1d
commit
9071e8daa0
4
.idea/misc.xml
Normal file
4
.idea/misc.xml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (presentation-20180904-basr)" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/presentation-20180904-basr.iml" filepath="$PROJECT_DIR$/.idea/presentation-20180904-basr.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
13
.idea/presentation-20180904-basr.iml
Normal file
13
.idea/presentation-20180904-basr.iml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
<component name="TestRunnerService">
|
||||||
|
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
93
.idea/workspace.xml
Normal file
93
.idea/workspace.xml
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="22c38599-0628-4a23-b553-84a61b002360" name="Default Changelist" comment="">
|
||||||
|
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
||||||
|
</list>
|
||||||
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="FUSProjectUsageTrigger">
|
||||||
|
<session id="1565258777">
|
||||||
|
<usages-collector id="statistics.lifecycle.project">
|
||||||
|
<counts>
|
||||||
|
<entry key="project.closed" value="1" />
|
||||||
|
<entry key="project.open.time.15" value="1" />
|
||||||
|
<entry key="project.opened" value="1" />
|
||||||
|
</counts>
|
||||||
|
</usages-collector>
|
||||||
|
</session>
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectFrameBounds">
|
||||||
|
<option name="x" value="580" />
|
||||||
|
<option name="y" value="229" />
|
||||||
|
<option name="width" value="1400" />
|
||||||
|
<option name="height" value="1000" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||||
|
<component name="ProjectView">
|
||||||
|
<navigator proportions="" version="1">
|
||||||
|
<foldersAlwaysOnTop value="true" />
|
||||||
|
</navigator>
|
||||||
|
<panes>
|
||||||
|
<pane id="Scope" />
|
||||||
|
<pane id="ProjectPane" />
|
||||||
|
</panes>
|
||||||
|
</component>
|
||||||
|
<component name="RunDashboard">
|
||||||
|
<option name="ruleStates">
|
||||||
|
<list>
|
||||||
|
<RuleState>
|
||||||
|
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||||
|
</RuleState>
|
||||||
|
<RuleState>
|
||||||
|
<option name="name" value="StatusDashboardGroupingRule" />
|
||||||
|
</RuleState>
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="SvnConfiguration">
|
||||||
|
<configuration />
|
||||||
|
</component>
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="22c38599-0628-4a23-b553-84a61b002360" name="Default Changelist" comment="" />
|
||||||
|
<created>1535543390620</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1535543390620</updated>
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="ToolWindowManager">
|
||||||
|
<frame x="580" y="229" width="1400" height="1000" extended-state="0" />
|
||||||
|
<layout>
|
||||||
|
<window_info id="Favorites" side_tool="true" />
|
||||||
|
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24945612" />
|
||||||
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||||
|
<window_info anchor="bottom" id="Version Control" />
|
||||||
|
<window_info anchor="bottom" id="Python Console" />
|
||||||
|
<window_info anchor="bottom" id="Terminal" />
|
||||||
|
<window_info anchor="bottom" id="Event Log" side_tool="true" />
|
||||||
|
<window_info anchor="bottom" id="Message" order="0" />
|
||||||
|
<window_info anchor="bottom" id="Find" order="1" />
|
||||||
|
<window_info anchor="bottom" id="Run" order="2" />
|
||||||
|
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
|
||||||
|
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||||
|
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
||||||
|
<window_info anchor="bottom" id="TODO" order="6" />
|
||||||
|
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||||
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||||
|
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
||||||
|
</layout>
|
||||||
|
</component>
|
||||||
|
<component name="VcsContentAnnotationSettings">
|
||||||
|
<option name="myLimit" value="2678400000" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -1,58 +0,0 @@
|
||||||
require(sqldf) # using sqldf to filter while loading very large data sets
|
|
||||||
require(data.table)
|
|
||||||
require(sf) # new simplefeature data class, supercedes sp in many ways
|
|
||||||
require(osmdata) # for loading data from OSM, supercedes "overpass" package and "osmar"
|
|
||||||
|
|
||||||
setwd("/Users/kidwellj/gits/presentation-20180904-basr")
|
|
||||||
|
|
||||||
# Import filtered CSV, selecting only data
|
|
||||||
# Note: OS recently changed column names to remove underscores, dropping header simplifies this issue
|
|
||||||
pointx_201512 <- read.csv.sql("/Volumes/imac-storage1/GIS_data/Ordnance_Survey/PointX_Complete_2015_12/poi_2015_12_all06340459.csv", sql = "select * from file where V3 = '06340459'", header = FALSE, sep="|")
|
|
||||||
pointx_201806 <- read.csv.sql("/Volumes/imac-storage1/GIS_data/Ordnance_Survey/PointX_Complete_2018_06/poi.csv", sql = "select * from file where V3 = '06340459'", header = FALSE, sep="|")
|
|
||||||
# pointx_201409 <- read.csv.sql("/Volumes/imac-storage1/GIS_data/Ordnance_Survey/PointX_Complete_2014_09/Data/pointx_v2_National_Coverage_Sept14.txt", sql = "select * from file where V3 = '06340459'", header = FALSE, sep="|")
|
|
||||||
# pointx_201609 <- read.csv.sql("/Volumes/imac-storage1/GIS_data/Ordnance_Survey/PointX_Complete_2016_09/csv/pointx_v2_National_Coverage_Sept16.txt", sql = "select * from file where V3 = '06340459'", header = FALSE, sep="|")
|
|
||||||
|
|
||||||
# Filter out the distorting uncategorised category
|
|
||||||
plot(sort(table(pointx_201806$V26[pointx_201806$V26 !='"Not Identified (Christian)"'])))
|
|
||||||
|
|
||||||
# Calculate a descending sorted list of points by each denomination for 2015, and filter out distorting "not identified" category
|
|
||||||
denominationcounts_201512 <- (sort(table(pointx_201512$V26[pointx_201512$V26 !='Not Identified (Christian)']), decreasing = TRUE))
|
|
||||||
par(las=2) # make label text perpendicular to axis
|
|
||||||
par(mar=c(12,8,4,2)) # increase y-axis margin.
|
|
||||||
par(cex.axis=0.7)
|
|
||||||
par(cex.lab=1)
|
|
||||||
# Subset top 10 for plot
|
|
||||||
plot(denominationcounts_201512[1:15])
|
|
||||||
|
|
||||||
# Calculate a descending sorted list of points by each denomination for 2018, and filter out distorting "not identified" category
|
|
||||||
denominationcounts_201806 <- (sort(table(pointx_201806$V26[pointx_201806$V26 !='"Not Identified (Christian)"']), decreasing = TRUE))
|
|
||||||
par(las=2) # make label text perpendicular to axis
|
|
||||||
par(mar=c(12,8,4,2)) # increase y-axis margin.
|
|
||||||
par(cex.axis=0.7)
|
|
||||||
par(cex.lab=1)
|
|
||||||
# Subset top 10 for plot
|
|
||||||
plot(denominationcounts_201806[1:15])
|
|
||||||
denominationcounts_201806
|
|
||||||
|
|
||||||
# Get UK Admin polygons
|
|
||||||
if (dir.exists("data") == FALSE) {
|
|
||||||
dir.create("data")}
|
|
||||||
download.file("https://borders.ukdataservice.ac.uk/ukborders/easy_download/prebuilt/shape/infuse_dist_lyr_2011_clipped.zip", destfile = "infuse_dist_lyr_2011_clipped.zip")
|
|
||||||
unzip("infuse_dist_lyr_2011_clipped.zip", exdir = "data")
|
|
||||||
admin_uk <- st_read(infuse_dist_lyr_2011_clipped)
|
|
||||||
fname <- system.file("data/infuse_dist_lyr_2011_clipped.shp", package="sf")
|
|
||||||
admin_uk <- st_read(fname)
|
|
||||||
|
|
||||||
# Make maps
|
|
||||||
# Define CRS for British National Grid
|
|
||||||
BNG = "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs +ellps=airy +towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894"
|
|
||||||
xy <- pointx_201806[,c(4,5)]
|
|
||||||
pointx_201806_map <- SpatialPointsDataFrame(coords = xy, data = pointx_201806,
|
|
||||||
CRS("+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs +ellps=airy +towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894"))
|
|
||||||
|
|
||||||
churches_ordnancesurvey_2018 <- st_read(pointx_201806)
|
|
||||||
sf("OS_pointX_2016_09-POW-UK_all-simplified.csv")
|
|
||||||
coordinates(churches_ordnancesurvey) <- c("FEATURE_EASTING", "FEATURE_NORTHING")
|
|
||||||
proj4string(churches_ordnancesurvey) <- proj4string(admin_uk) # borrow BNG CRS from admin boundaries shapefile
|
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,9 @@
|
||||||
}
|
}
|
||||||
.red { color: #fa0000; }
|
.red { color: #fa0000; }
|
||||||
/* Two-column layout */
|
/* Two-column layout */
|
||||||
|
.strikethrough {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
.left-column {
|
.left-column {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
float: left;
|
float: left;
|
||||||
|
@ -144,9 +147,67 @@ Ordnance Survey = data on places of worship is purchased from a private database
|
||||||
Open Street Map = open access, generally accurate, but incomplete
|
Open Street Map = open access, generally accurate, but incomplete
|
||||||
Google Maps = very expensive. No provision for scholarly use
|
Google Maps = very expensive. No provision for scholarly use
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Things are missing:
|
||||||
|
|
||||||
|
Mosques and Islamic community centres in Birmingham metro (+50km):
|
||||||
|
- According to http://mosques.muslimsinbritain.org: 289
|
||||||
|
- According to ordnance survey: 224
|
||||||
|
- According to open street maps: 118
|
||||||
|
- According to google maps: 100
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### Data is bad:
|
||||||
|
|
||||||
|
According to Ordnance Survey:
|
||||||
|
Of 46,057 places of worship in the UK:
|
||||||
|
1692 baptist churches
|
||||||
|
2446 churches designated as “Church of England”
|
||||||
|
2476 Catholic Churches
|
||||||
|
3584 Methodist churches.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
So who cares?
|
||||||
|
|
||||||
|
???
|
||||||
|
So why does all this matter? There are two key reasons why scholarly focus on these data sources might align well with our concern for public literacy about religion and frankly justice. First, for many people walking around in Europe, these data sets are reality. When was the last time you navigated somewhere without using a turn-by-turn app on some smartphone? If data is lacking in completeness, these places simply fall off the map. Second, is metadata. While this term may seem fairly innocuous, it can be a very malevolent force. Metadata is simply the practice of adding a bit of additional data to the 'main stuff'. So we have some coordinates and a name for a place of worship, and then maybe we add the opening hours, or we allow people to add ratings, or we add a category.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Exhibit A: All of Google's religion categories:
|
||||||
|
|
||||||
|
- .strikethrough[place of worship]
|
||||||
|
- church
|
||||||
|
- hindu_temple
|
||||||
|
- mosque
|
||||||
|
- synagogue
|
||||||
|
|
||||||
|
### Exhibit B: Schema.org Microdata Specification
|
||||||
|
|
||||||
|
["developed by an open community process"](https://schema.org/)
|
||||||
|
|
||||||
|
Place / CivicStructure / PlaceofWorship subcategories (v3.4):
|
||||||
|
|
||||||
|
- BuddhistTemple
|
||||||
|
- CatholicChurch
|
||||||
|
- Church
|
||||||
|
- HinduTemple
|
||||||
|
- Mosque
|
||||||
|
- Synagogue
|
||||||
|
|
||||||
|
???
|
||||||
|
These categories produce borders and tacitly facilitate exclusion. Have you ever wondered how google finds content based on a given search you produce?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue