 	}
 
 
+	/// Initial statistics module setup
+	func initialSetup(onCity city: City) {
+		// Crop our obstruction mask to the same size of the city's measured size
+		// This must be done after the City and Statistics classes are initialized
+
+		obstructionMask?.crop(newTopLeftCell: city.topLeftCell, newSize: city.cellSize)
+	}
+
 
 	/// Final statistics collection routine
 	func finalCollection(onCity city: City) {

	// Data separator (e.g. ',' or ';' for CSV (comma not recommended in Europe, prefer semicolon), '\t' for TSV
	let separator = "\t"

	var obstructionMask: CellMap<Character>?

	init(config: NSDictionary) {

			scheduledCollectionTime += interval
		} while scheduledCollectionTime < city.events.stopTime

		// Schedule an init-stage event to set up the statistics module
		let statisticsSetupEvent = SimulationEvent(time: 0, type: .Statistics, action: {city.stats.initialSetup(onCity: city)}, description: "initialStatsSetup")
		city.events.add(initialEvent: statisticsSetupEvent)

		// Schedule a cleanup-stage event to collect final statistics
		let finalCollectionEvent = SimulationEvent(time: 0, type: .Statistics, action: {city.stats.finalCollection(onCity: city)}, description: "finalCollectStats")
		city.events.add(cleanupEvent: finalCollectionEvent)
