Difference between revisions of "IS428 AY2019-20T1 Assign Lee Cheng Leng EDA"
Jump to navigation
Jump to search
Cllee.2017 (talk | contribs) |
Cllee.2017 (talk | contribs) |
||
Line 24: | Line 24: | ||
= Data Cleaning Process = | = Data Cleaning Process = | ||
− | <!-- | + | <!-- {| class="wikitable" |
− | {| class="wikitable" | ||
|- | |- | ||
! !! Problem #1 | ! !! Problem #1 | ||
|- | |- | ||
− | | Issue || | + | | Issue || Upon data exploration, I found that the Static Sensor Locations and Readings are in two separate files. In order to make meaningful analysis, we would require the data from both files. |
|- | |- | ||
− | | Solution || Join the two files in Tableau Prep Builder using the 'Join' function. We would be joining them on the sensor-id, which are unique identifiers of the static sensors. | + | | Solution || Join the two files in Tableau Prep Builder using the 'Join' function. We would be joining them on the sensor-id, which are unique identifiers of the static sensors. <br> |
+ | Steps: | ||
+ | # Import the StaticSensorLocations.csv and StaticSensorReadings.csv files into Tableau Prep Builder. | ||
+ | # Join the two files together on the sensor-id column as shown below. | ||
+ | |||
|} | |} | ||
Line 38: | Line 41: | ||
! !! Problem #2 | ! !! Problem #2 | ||
|- | |- | ||
− | | Issue || | + | | Issue || From the data description, we can tell that the user-id of the mobile sensors are not unique as some users choose not to change their user-id from the default, ‘MySensor’. This means that user-id is not a unique identifier of the mobile sensors. Furthermore, static sensors do not have any user-id tagged to it. Hence, it is redundant. Also, all the readings are taken in the units of counts per minute (cpm), hence there is no need for that column as all the column values are identical. |
|- | |- | ||
− | | Solution || | + | | Solution || Drop the user-id and units column during data cleaning so as to remove any unnecessary attributes and reduce runtime. This can be done in Tableau Prep Builder. |
|} | |} | ||
+ | |||
+ | <br> | ||
+ | Final Data Preparation Workflow from Tableau Prep Builder: | ||
+ | <br> | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 47: | Line 54: | ||
! !! Problem #3 | ! !! Problem #3 | ||
|- | |- | ||
− | | Issue || The mobile and | + | | Issue || The mobile sensor readings file only contains latitude and longitude data for the sensor positions, but does not provide any information regarding the neighbourhoods which the sensors are currently located in. This would pose a problem if we are trying to analyse the sensor readings based on the neighbourhoods, in order to identify which neighbourhoods have high uncertainty in readings. |
|- | |- | ||
− | | Solution || | + | | Solution || Solution: We would be able to map each of the points by doing a spatial join between the MobileSensorReadings.csv and StHimark.shp shapefile, namely the Intercept Outer Join. This would create an additional ‘Neighbourhood’ column for us to identify the neighbourhood that the sensor is currently located in for us to do more detailed analysis. <br> |
+ | Steps: | ||
+ | # Import the StHimark.shp file and the MobileSensorReadings.csv file into Tableau. | ||
+ | # Combine the files using the Join function. The input should be as follows: | ||
+ | |||
|} | |} | ||
Line 56: | Line 67: | ||
! !! Problem #4 | ! !! Problem #4 | ||
|- | |- | ||
− | | Issue || | + | | Issue || The map provided, 'StHimarkNeighborhoodMap.png', is too rich in colour to be used as a background map image. |
|- | |- | ||
− | | Solution || I | + | | Solution || I used Powerpoint to recolour the image to a greyscale. Upon applying washout before applying it as the background map image, I would then be able to obtain a background that does not take away the attention from the actual data points. |
|} | |} | ||
− | {| class="wikitable" | + | <!-- {| class="wikitable" |
|- | |- | ||
! !! Problem #5 | ! !! Problem #5 | ||
Line 77: | Line 88: | ||
|- | |- | ||
| Solution || Hence, I chose to aggregate the data based on the combination of 'Sensor Type', 'sensor-id', 'Timestamp', 'Lat' and 'Long'. I also aggregated the values by taking the average of the readings across the 10 minute interval, so as to provide a more accurate representation of the sensor readings within the 10 minute interval. | | Solution || Hence, I chose to aggregate the data based on the combination of 'Sensor Type', 'sensor-id', 'Timestamp', 'Lat' and 'Long'. I also aggregated the values by taking the average of the readings across the 10 minute interval, so as to provide a more accurate representation of the sensor readings within the 10 minute interval. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
--> | --> |
Revision as of 19:02, 10 October 2019
|
|
|
|
|