WikiProject Uganda/Import Kampala Capital City Authority Data

From OpenStreetMap Wiki
Jump to navigation Jump to search

Goals

The goal is to import Kampala Capital City Authority(KCCA) data provided under the Nakamiro Mapping And Surveying Channel Area Project. The import process and workflow will also provide a step into integrating OpenStreetMap workflows into government GIS processes.

Feature Number
Buildings 35,538
Roads 737
Marketplaces 5
Drainage 1,546
High Voltages Poles 883
Hv lines 926
Low Voltage Lines 3,289
Low Voltage Poles 4,961
Transformers 172
Informal Settlements 16
Land Use 91
Schools 198
Street Light 272
Hill tops 2
Spot heights 4
Wetland 2

Schedule

Preparation, discussion: To be started on <date> Import: Expected to start as soon as the community has solved any issues. The Map below shows what data sets have been uploaded in the 5 parishes of Kawempe division in Kampala


Import progress.jpeg

Data

Data was provided by KCCA

Data description

According to KCCA, the data was collected between 2011 and 2016, based on Arc1960 UTM 36S, for the sole purpose of city planning, management and administration. The dataset contains several field attributes that can be used to improve on existing OSM data.

Background

ODbL Compliance verified: YES The Kampala Capital City Authority has given full authorization for the use of their data in OpenStreetMap under the ODbL license. A scan of the document can be found here.

Import Type

The import will be done manually by a team of experienced mappers following a detailed workflow to accomplish this. For each feature, we will assess the existing data in OSM against the KCCA data, for the merging of the KCCA data into the OSM database.

Note: In addition to the KCCA data, we have conducted field surveys a team of 30 mappers. The KCCA data will be used to provide additional attributes to the data collected by the field teams.

Data Preparation

Data Reduction & Simplification

The data is originally in shapefile format. You can download the original data from here.

Tagging Plans

Buildings

KCCA tag OSM tag Comments
Division = <name> addr:division = <name>
Parish2 = <name> addr:parish = <name>
Village2 = <name> addr:village = <name>
PropertyType = Institutional, Residentialowneroccupied,Residentialrented, commercial, building=commercial, residential
PropertySu=<classroom, hostel, barn, apartment, hospital,carteen, factory, kiosk, greenhouse, kraal, labaratory,mda, cemetry, bar_club, abbatoir, office, public toilet,poultry house,warehouse, rental space, showroom, store kitchen, stores> building:use= <apartment, laboratory, green_house>building=<*>
entitytype=<individual> Delete Type of entity that owns the building; whether its an individual or company
legalname<name> name<name>
flatnumbe=<number> addr:flats= <number>
housenumber addr:housenumber= <integer>

Roads

KCCA tag OSM tag Comments
layer= paved, unpaved surface= paved, unpaved Road condition
Road_Name name=* Name of road
Road Code ref=* Reference code

Marketplaces

KCCA tag OSM tag Comments
Name name Market name
DIVISION<name> addr:division<name> Division name
PARISH<name> addr:parish<name> Parish name
ZONE<name> addr:village<name> Zone/Village name
MARKET_NAM<name> name<name> amenity= marketplace
NAME_OF_VE<name> Delete Name of the association managing the market
NAME_OF_CH<name> Delete Name of the chairman of the market
CONTACT_OF< phone number> contact
CONDITION<permanent, temporary> note=<temporary, permanent, semi-permanent>
ROAD_NAME<name> Delete Major road on which the market is located
MARKET_STA<Gazetted, Non Gazetted> note=<official, not official>
NUMBER_OF<Integer> Delete Number of vendors in the market daily
NUMBER_O_1<Integer> Delete Number of vendors in the market weekly
TOTAL_NUMB<Integer> capacity=<integer>

Drainage

KCCA tag OSM tag Comments
Primary_Co<LU2,MA8A> Delete The drainage area code reference
Type<Tertiary> waterway=canal, drain, ditch Link
Basin<8A> Delete The area basin reference ID
Basin_Code<MA8A> Delete The area basin reference code
Road_type<paved, unpaved> Delete Th road surface next to the drainage system
Tertiary_C=<LU2_0_10177,LU2_0_9980> Delete Drainage reference code

Energy Utilities

KCCA tag OSM tag Comments
LvLineABC/UGHvLineABC/UG power=line, power=minor_line
OBJECTID<integer> Delete Survey object ID
ASBUILT<Existing Conductor, New Conductor> Delete Column represents where the power line is new or has been in existence for sometime
DISTRICT<WANDEGEYA> addr:district
Substation<KAMPALA NORTH,KAWANDA,NAMUNGONA,LUGOGO> Delete Depicts the name of the substation to which the powerline originates
FEEDERNAME<KAWEMPE,MULAGO HOSPITAL 2,NTINDA,NAKULABYE,NAKULABYE, MAKERERE UNIVERSITY,KOLOLO,MAKERERE UNIVERSITY,MUTUNDWE,KAWANDA,GAYAZA ROAD Delete Depicts the location from which the power lines originate
FeederCode<KLN/KWP/11/1,KLN/MHO/11/2…> ref=<KLN/KWP/11/1,KLN/MHO/11/2…>
VOLTAGE<11,33> Voltage
DblCircuit<True, False> Delete Depicts whether the power line has a Dbl Circuit
PHASE<0> Delete Shows the number of phases the powerline has. Insufficient data was available for this column
LENGTH<integer> Delete Depicts the length of the power line in km
Legal< TRUE, FALSE> Delete Shows whether the power was legally installed
lvPoleABC/UGHvPoleABC/UG power=pole, power=minor_line
OBJECTID<integer> Delete Survey object ID
ASBUILT<New pole, existing pole, replaced poler> Column represents where the pole is new or has been in existence for sometime
DISTRICT<WANDEGEYA> addr:district
Substation<KAMPALA NORTH,KAWANDA,NAMUNGONA,LUGOGO> Delete Column represents the substation area under which the pole is located
FEEDERNAME<KAWEMPE,MULAGO HOSPITAL 2,NTINDA,NAKULABYE,NAKULABYE, MAKERERE UNIVERSITY,KOLOLO,MAKERERE UNIVERSITY,MUTUNDWE,KAWANDA,GAYAZA ROAD Delete The name of the location of the origin of power line the power pole attached to
FeederCode<KLN/KWP/11/1,KLN/MHO/11/2…> ref=<KLN/KWP/11/1,KLN/MHO/11/2…>
OVERALLCON<Structure OK,Urgent Maintenance,Normal Maintenance> operation_status< good, needs_maaintenance> Proposed tag
VOLTAGE<11,33> voltage<11,33>
STRUCTURE<Pin Angle, Termination,Angle Strain (30-90),Flying Angle, Termination design< pin angle, termination, strain>
LINECONFIG<Horizontal,H-Pole,Vertical,H-Pole/Lay Pole> Delete The column represents how the power lines were attached to the pole
POLEMATERI<wood> material
POLELENGTH<12m, 14m> height
POLEUSAGE=<MV/LV Combo,MV Only Delete The type of use of the pole
NOOFTOFFS<0,1> Delete Number of power lines coming off the pole
MVPHASE<3phase> Delete Maximum number of high voltage phases
LVPHASE=<1 Phase, 2phase, 3phase, N/A> Delete Maximum number of low voltage phases
CUSTTYPE=<House Connection,N/A,Ground Mounted Kiosk,Other, Cable - Box> Delete Type of connection
CUSTOMERCO<integer> Delete Number of customers
HVOPENPOIN=<True, False> Delete The column depicts where the pole has a high voltage openpoins
LVOPENPOIN=<True, False> Delete The column depicts where the pole has a low voltage openpoin
INSULATORT<Porcelain Pin, Glass Disk,Polymeric Strain,Porcelain Post,Porcelain Disk> Delete Type of insulator used
INSULATORC<integer> Delete Number of insulators used
CONNECTION<Wire Wrap, Crimp,PG Clamp,other> Delete Type of wire connection
STREETLIGH=<1 Phase, 2phase, 3phase, N/A> phases
EQUIPMENTT=<N/A, conditionOK,missing, Damaged> Delete Where the pole is lacking any particular equipment
KIOSKCONDI=<N/A, conditionOK,missing, Damaged> Delete Where the pole is lacking a Kiosk and the condition
PADLOCKCON<N/A, conditionOK,missing, Damaged> Delete Where the pole is lacking a padlock and the condition
STAYCOUNT=<0,1> Delete Where the pole has stays
NoLvStays=<0,1> Delete Whether the pole has low voltage stays on the pole
FLYINGSTAY=<0,1> Delete Presence of a flying stay on the pole
GUYSTAY=<0,1> Delete Presence of a guy stay on the pole
SHORTSTAY=<0,1> Delete Presence of a short stay on the pole
STRUTCOUNT=<0,1> Delete Presence of a strut on the pole
ABS<True, False> Delete Whether the pole has an ABS
CABLETERMI<True, False> Delete Whether the pole has a cable termination
CIRCUITBRE<True, False> Delete Whether is the a circuit break on the pole
FUSESWITCH<True, False> Delete Whether there is a fuse switch present on the pole
FUSEDROPOU<True, False> Delete Whether the pole has FUSEDrop present
FUSES<True, False> Delete Whether there are fuses on the pole
GANGSWITCH<True, False> Delete Whether there is a gang switch present
ISOLATOR<True, False> Delete Whether the pole has insulators present
KNIFEBSWIT<True, False> Delete Whether the pole has a knife switch present
METERUNIT<True, False> Delete Whether the pole has a meter unit present
RMU<True, False> Delete Whether the pole has a RMU present on it
SECTIONALI<True, False> Delete Whether is a sectionali pole.
CAPBANKS<True, False> Delete Where the pole has capbanks present
Transformer power=transformer If the location of the transformer is on a pole then power=pole; transformer=distribution
TX name<name> Name <name>
voltage<11,33> voltage<11,33>
mounting< pole, ground pedestal> location<pole, ground, pedestal>

Landuse

KCCA tag OSM tag Comments
OBJECTID<integer> Delete Survey object ID
PARISHCLAS<community facility,transport,low income,very low income,industrial,park & sport,vacant land,middle income,vacant land,commerce small scale & informal,wetland,agriculture informal landuse= industrial; agriculture natural=wetland,
PARISHREGI<Mulago I, Mulago II, Mulago III,Bwaise I Bwaise II, Bwaise III, Kanyanya, Kyebando,Kawempe I, Kawempe II, Makerere I, Makerere II, Makerere III, Kasubi, Kazo, Nabweru> addr:parish
AREA_HA2<Integer> delete Area of land use in hectares
AREA_SQ_KM< integer> Delete Area of land use in km2

Informal settlement

KCCA tag OSM tag Comments
Slum name< name> name Add land use= residential, residential= slum
Shape length <integer> Delete Length of the settlement
Shap area<integer> Delete Area of the settlement

Schools

KCCA tag OSM tag Comments
District <Kampala> addr:district<name>
County<Kawempe,Kyadondo> addr:county<name>
Subcounty< Kawempe North, Kawempe South, Rubaga North, Nabweru addr:subcounty<name>
Parish<Kaso, Nabweru, Mulago, Mulago ii,Kawempe I, Kawempe II, Kasubi, Makerere I, Makerere II, Makerere III, Bwaise I, Bwaise II, Bwaise III, Kanyanya addr:parish<name>
Village<name> addr:village <name>
Name<name> name<name>
ERT_Energy<0> Delete Amount ERT energy generated
Fcode<0> Delete School, insufficient data to be uploaded to OSM
Collection<Probably 2003 or 2004> Delete Date of data collection
Collecti_1<GPS> Delete Equiment used to collect the data
Schooltype<Primary, Secondary> isced:level< 2,3> Add amenity= school
Ownership<Private, Government> operator< private, government>
School_Sta<Non-government, Government> operator_type< government, non government
School_S_1< School open and use> operational_status Proposed tag
No_Student<Integer> capacity<integer>
No_Teacher<Integer> staff_count:teachers
No_Classro<Integer> classroom_blocks<integer>
EMIS_Data< 2003, 2004> date<2003,2004>
School_Ref< Integer> ref<number>
Grid_Dista< less than 1km, greater than 1km> Delete Distance to a reference point within a grid
Source <AFRICON EMIS Schools Project> Source <AFRICON EMIS Schools Project>

Street Light

KCCA tag OSM tag Comments
feature= street_lamp highway=street_lamp
ObjectID< integer> Delete Survey object ID
1a__Data_C<imuwonge> Delete Data manager ID
Validated<1> Delete Where the feature was validated
2__Divisio<KAWEMPE> addr:division
4__Circuit<TtulaRoad,SirApolloKagwaRoad,BomboRoad,Ttula_MpererweRoad,LugobaRoad Delete The road on which the pole is located
5a__Latitu< co ordinates> Delete Latitude coordinates
5b__Longit<co ordinates> Delete Longitude coordinates
Select_App<light, control> Delete Presence of lights
6__Type_of <metallic> Delete Material pole used
M2__Pole_S<upright1, missing1, broken> Delete Pole condition
M3_Cover_P< Present OK, missing, Delete Light cover present
M4__Arm_st<one> Delete Number of light arms present
M5__Type_o<sodiumvapor, none> Delete Type of light present
M6__Workin<working, non working> operation_status< operational, non_operational>
M7__Light<150,0> Delete Light watts
M12__Cable<ok1, notok1> Delete Cable condition
M13__Cable<OK, FAULTY, NOLATERN, SHORTING> Delete Cable condition detail
9__Street<OK, FAIR, POOR> Delete Overall condition of the street
CreationDa<Date> date Date of collection of data
Creator<landscape_team2> Delete The department team that created the dataset
EditDate<date> Delete The date the dataset was edited
Editor<landscape_team2> The department team that edited the dataset

Elevation

KCCA tag OSM tag Comments
Hilltops
name<name> name<name> Add natural=peak
height<0> height<integer>
Spot elevation Add natural=spot_eleation
height<integer> ele<integer>

Changeset Tags

We will use the following changeset tags:

To the * comment=* tag, you may need to add particular comments to the changeset.

Data Transformation

Data is in shapefile format. We opened that in QGIS and saved each file in a geojson format. In QGIS we also removed all the column attributes that were not in sync and not are to be uploaded to OpenStreetMap. Basing on the existing columns new attribute columns were created using the field calculator in QGIS with columns headers that match the OSM key and values in OSM. The dataset was loaded in JOSM using the opendata plugin.

Data Merge Workflow

For feature conflation, the different datasets will be reviewed and compared with their OSM counterparts to select the attributes and features that will be uploaded to the OpenStreet Map. The following section presents the considerations that will be taken into account for each one of the previously selected datasets to be merged with the attribute table or the features to complement the gaps.

General Overview of Data Merge Workflow

General workflow for conflation.png

      JOSM

All features that have an offset with respect to the imagery or the rest of the features will be corrected using JOSM. Once all the features have been aligned to the correct CRS (Coordinate Reference System), they will be transferred to QGIS where the conflation process will be undertaken (explained below). Once conflated, the updated features will be again transferred to JOSM, further verified and finally uploaded to OSM.  

      QGIS

For all non-OSM features, their respective attribute table will be cleaned in order to only contain the previously selected attributes to be conflated with the OSM data. Later on, the overlapping features will be filtered and erased.

      Line features

For every external non-OSM data represented by a line feature, a buffer will be created.  All the OSM line features that fall into the buffer are to acquire all of the attributes of the non OSM field selected for the completion.

       Point features

For every external non-OSM data represented by a point feature, a buffer will be created.  All the OSM line features that fall into the buffer and do not overlap with other features, are to acquire all attributes of the non OSM field selected for the completion.

       Polygon features

All non-OSM features overlapping those from osm will get all the respective OSM attributes. The attributes with the best quality or most updated information will be kept.

        GeoJSON conversion

Once the conflation process is done, all conflated files will be converted to GeoJSON in QGIS and then transferred to JOSM to be verified and rectified in case there are CRS problems.

Buildings

Step 1:

Open JOSM and download the latest Buildings digitised in OSM using Esri and Maxar imagery. Using the Overpass-Turbo  download query wizard in JOSM all buildings in the Nakamiro catchment area are downloaded.

Step 2:

Inspect the layer to identify any gaps in data quality using JOSM.  In order to clean up the buildings in OSM the HOT team will use the 2014 high resolution imagery shared by the KCCA’s GIS.

Step 3:

Upload the received imagery to OAM. Due to technical difficulties in getting the imagery into openaerial map, HOT will convert the imagery into Mbtiles and create a remote mapping task of the area.

Step 4:

Review the imagery’s accuracy. To check for imagery accuracy between the KCCA high resolution and the satellite imagery default in OSM (Maxar), HOT  will use GPX tracks. After comparing with GPX tracks data collected on the field, KCCA high resolution imagery was deemed to be accurate. Through mapping supervisors and youth mappers, HOT will realign and remote map the OSM buildings to be added to the KCCA high resolution imagery.

Step 5:

Select the features and attributes to be conflated. The KCCA GIS team shared a 2014 buildings dataset in point format. Only those fields that contain OSM compatible tags will be selected and retained. The tags and fields that were not OSM comparable will be dismissed.

Step 6:

Field mapping. The digitised and re-aligned buildings will then be used as the XML layer in OMK during the data collection. Using the Mbtiles of 2014 the surveyors will update the buildings in OSM and those not existing in the 2014 imagery will be mapped using points on OMK.

Step 7:

Conflation. The resulting remote mapped and field collected building dataset will then be merged and compared with the KCCA 2014 buildings. The OSM comparable attributes from the KCCA 2014 building dataset will then be copied to the existing OSM buildings dataset. The data will be validated with the 2019 high resolution imagery shared by the KCCA team. In case of any conflicting attributes between the two datasets the HOT remote mapped and field collected dataset will supersede any other as it is the most updated. All attributes susceptible to be remotely verified will be reviewed using the 2019 high resolution imagery.


Roads

The selected KCCA’s attributes will be copied and pasted onto the existing OSM roads. In case the surface type for a certain segment of road does not match between OSM and KCCA’s data there was a validation from the ground and the 2019 image that will supersede the value.

Table IV: Roads conflation equivalencies table

KCCA roads OSM roads
Key field: layer highway=surface
Tag Paved Roads Paved
Unpaved Roads Unpaved
Key field: ROAD_NAME highway=name
Tag All named roads name
Key Field: Rodcde ref=*
Tag All named roads
Step 1:

Roads previously digitised in OSM using Bing, Esri and Mapbox and Digitalglobe satellite imageries will be first downloaded using the Overpass-Turbo query wizard in JOSM for the selected area.

Step 2:

Inspection of OSM’s data quality using JOSM. Most of the roads in the project area of Interest were previously digitised effectively in OSM with a few paths missing. Most of the OSM roads had only one attribute: ‘highway’ = ‘primary’; ‘secondary’; ‘tertiary’ or ‘unclassified’.

Step 3:

Inspection of external data. KCCA shared a 2016 roads dataset digitised using the 2014 high resolution imagery and currently being used to set up road name signage within the city. Both datasets were loaded in JOSM and compared. KCCA’s layer presented an offset with respect to the OSM roads layer. This offset will be corrected to assist the conflation process.  

Step 4:

Select the attributes and features to be conflated. For roads only two attributes that contained similar information; ‘layer’ and ‘road_name’ were found between OSM and the dataset provided by KCCA. These attributes’ respective keys and tags will be matched following the criteria of the OSM wiki on roads tagging. The attributes coming from KCCA’s datasets will be adapted to match the OSM tagging system by changing the respective column name and cell value to the respective OSM equivalent.

Step 5:

Divide the data sets in manageable sections. The updated KCCA roads dataset will be divided up into sections, based on the parish from which the road originates. In some cases the attributes from the KCCA dataset will be transferred to the OSM layer by using the Conflation plugin in JOSM, and for some other cases, it will be done manually.

Step 6:

Conflation. Two methods will be piloted for the conflation of KCCA and OSM roads.

Method 1: Using the JOSM conflation plugin

First the updated KCCA dataset will be loaded in JOSM as a geojson or OSM layer. Now, download the OSM roads layer, as a new layer,  using the Overpass-Turbo wizard. Then the conflation plugin will be downloaded by going to Edit and then Preferences menu. Then on the Plug-in tab the Conflation plug-in will be downloaded. Now select all KCCA’s features in JOSM. On the Conflation plug-in window, click the configuration button, and set  the KCCA dataset as the reference layer.

Afterwards, select all the OSM roads layer features and in the Conflation plug-in choose the OSM layer as the subject. Once all features have been selected, set the rest of the conflation parameters on the dialog box. First, select the one to one method and the Hausdorff distance option. Uncheck the replace geometry option. This is because you only want to transfer the attributes and not the geometry. Make sure the ‘merge all tags’ box is ticked and click generate matches. The plugin will then match attributes of all in the reference layer with those in the OSM layer within a distance of 30 metres.

A new conflation layer is generated showing what features are to be transferred and matched together. Later on, on the conflation palette window click the ‘matches’ tab. This tab shows all the common features between both layers that will be susceptible to be conflated. Now, highlight all features to be conflated, and click on the conflate button. This will bring a window that will allow you to manually solve, one by one, the tagging conflicts existing between both layers features. The data cleaner will then be required to choose between the OSM and KCCA attribute for the feature. After this process is finished, all the tags of the coincident features from the reference layer will be transferred to the subject layer. Now, you will have to go to the subject layer and verify, object by object, if the tag conflation was actually done. For those common features that were common and the tags were not transferred, you will have to do it manually using method 2 outlined below.

Kcca road conflation 2 .gif

Method 2: Using systematic manual inspection

The following diagram is a mind map that depicts the second workflow used to conflate the attributes from KCCA roads to the OSM layer and the additional features that only existed in the KCCA roads layer and not on the OSM layer, tags inclusive.



KCCA roads conflation.png


Data conflation workflow2.gif


Data conflation workflow 1.gif

Marketplaces

The market data from KCCA will be loaded into QGIS in the shapefile format. The data set was then saved as geojson to ease editing and loading into in JOSM subsequently. In QGIS all fields that were not compatible with the with the OSM data model and tagging system were deleted these included NAME_OF_VE, NAME_OF_CH,ROAD_NAM,MARKET_STA and NUMBER_OF. The column attributes that were inline with the OSM tagging model were then edited using the field calculator. New fields were created inline with the OSM tagging model.

The data was then loaded in JOSM as a geojson and the KCCA 2019 high resolution imagery added either as a TMS using openaerialmap or as an Mbtile locally in JOSM. Using the JOSM download query option all marketplace features in OSM were downloaded as new layer Using the 2019 KCCA high resolution imagery and the OSM downloaded data,  the marketplace points locations were verified and any duplicated points deleted.This is data-set will be compared with the data collected from the field using the OpenMapKit where any new points marketplaces with added and verified before uploading to OSM.

KCCA markets conflation.png


Data conflation workflow4.gif


Data conflation workflow3.gif


As for the marketplaces only the available numbers and complementing features (as points) were included into the conflation process.

Table V: Marketplaces conflation equivalencies table.

KCCA Markets OSM buildings OSM Poi's
Key field: marketplaces amenity=marketplace POI
Tag name name marketplace

Drainage

The KCCA  drainage dataset was loaded into QGIS as a shapefile, in QGIS all column attributes that are not related to OSM are deleted and using the field calculator a new column attribute for ‘waterway’ was created. The dataset was then divided by parish and saved as a geojson to then be loaded into JOSM using the Opendata plugin. In JOSM, using the Overpass Turbo download query wizard option, all features tagged as waterways within the AOI in OSM were downloaded. The 2019 KCCA high resolution imagery was then converted to mbtiles and loaded in JOSM. Using the 2019 imagery and the KCCA dataset in comparison with the existing dataset. The senior mapper would systematically focus on a particular drain in the KCCA dataset, he would then use the 2019 imagery to identify and trace the visible drains and tagging them as waterway= drain. If the drain can be clearly seen that its not built or lined then its tagged as a waterway=ditch.For the drains not visibly seen in the 2019 imagery, the field drain data collected will be used to verify and ascertain the existence and type of drainage in place.

KCCA drainage conflation.png

Energy Utilities

Low and high voltage lines

The low and high voltage power network data will be first loaded in QGIS. In QGIS the following attribute columns will be deleted: OBJECTID, DISTRICT, Substation, FeederName, type and size. The Feedercode column attribute will be edited to become ref. Using the field calculator a new column of power with a default value of ‘line’ for high voltage and ‘minor_line’ for low voltage power lines, respectively, will be created. The two datasets will then be saved as Geojson. The newly saved high and low voltage line will be loaded into JOSM using the openlayers plugin. The two datasets will be then merged and. In this new layer, both the low and high voltage lines will be copied from their respective shapefile layers and pasted in their exact location on the new OSM layer using Ctrl+A to select all features, Ctrl+C to copy and Ctrl+Alt+V to paste in the exact location. Once all power lines are in one layer, all data relating to power existing in OSM will be downloaded as a new layer. Using the download Overpass-Turbo query wizard, the senior mapping supervisor, will use the following query ‘power=*’ to fetch the data. Once the data is in OSM, a comparison between what is existing in OSM and the acquired KCCA dataset will be carried out. This is done to avoid double mapping or uploading information to OSM of already existing features.

Using the ‘todo list’ plugin, the senior mapper will then inspect each segment of the power line. If a power line does not exist in OSM, then its copied and pasted onto the OSM downloaded layer. If the powerline already exists in OSM and also exists in the KCCA/UMEME dataset, then the KCCA/UMEME dataset takes precedence as the data was collected through survey while the existing OSM data was acquired using satellite data which would render it of lower accuracy. The senior mapper will also use the Mappillary plugin in JOSM to verify the existence of the power lines by downloading the available Mapillary images within the area. He would then look for evidence of power line within the images before adding the power line segment on to the OSM layer. This process is done for all high and low power line segments. Once the inspection is done the data that has been added to the OSM layer is then uploaded to OSM.

Energy utility powerlines.png

Low and High voltage Poles

The Low and high voltage power poles data was first loaded in QGIS. In QGIS the following attribute columns were deleted: OBJECTID, ABSULT, DISTRICT, Substation, FeederName, LINECONFIG, POLEUSAGE, NOOFTOFFS, MVPHASE, LVPHASE, CUSTTYPE, CUSTOMERCO, HVOPENPOIN, LVOPENPOIN, INSULATORT, INSULATORC, CONNECTION, STREETLIGH, EQUIPMENTT, KIOSKCONDI, PADLOCKCON, STAYCOUNT, NoLvays.

The column attribute of Feedercode was edited to become ref, OVERALLCON to condition, VOLTAGE to voltage, STRUCTURE to pole_type, POLEMATERI to material, POLELENGTH to height.

Using the field calculator a new column for ‘power’ with a default value of pole was created. The two datasets were then saved as Geojson. The newly saved high and low voltage line were loaded into JOSM using the openlayers plugin. The two datasets were then merged and a new OSM layer was created. In this new layer, both the low and high voltage lines were copied from their respective shapefile layers and pasted on the new OSM layer using Ctrl+A to select all features, Ctrl+C to copy and Ctrl+Alt+V to paste into their exact location. Once all power lines are in one layer, all OSM data relating to power was downloaded as a new layer. Using the download overpass query wizard, the senior mapping supervisor, used a “power=*” query to acquire the data. Once the data is in OSM, a comparison between what is existing in OSM and the acquired KCCA dataset is carried out. This is done to avoid double mapping or uploading information to OSM of already existing features.

Using the ‘todo list’ plugin, the senior mapper would then inspect each segment of the power line. If a power line is not in OSM, then its copied and pasted onto the OSM downloaded layer. If the powerline already exists in OSM and also exists in the KCCA/UMEME dataset, then the KCCA dataset takes precedence as the data was collected through survey while the existing OSM data was acquired using satellite data which would render it of lower accuracy. The senior mapper would  also use the Mappillary plugin in JOSM where possible to verify the existence of the power lines by downloading all mapillary images within the area. He would then look for evidence of power line within the images before adding the power line segment on to the OSM layer. This process is done for all high and low power line segments. Once the inspection is done the data that has been added to the OSM layer is then uploaded to OSM.


Energy Utilities power poles.png


Land Use

The land use data will be first loaded into QGIS in the shapefile format. In QGIS, the following column attributes will be deleted; (OBJECTID, AreaHA, Area sqkm). The columns attribute PARISHCLA will be then edited to ‘landuse’ and the values of ‘low income’, ‘middle income’ and ‘very low income’ will be deleted. The features whose values will be deleted will be filtered out and saved out as a geojson. The remaining features will then be saved as a geojson and loaded into JOSM.

In JOSM the 2019 high resolution imagery acquired from KCCA will be converted to mbtiles and loaded in JOSM using the mbtiles plugin. Using the todo list plugin, each feature will be inspected using the 2019 imagery to ascertain whether land use value reflects a true and updated description of the area in question. From the inspection, the HOT team noticed that the land use layer was outdated and could not be uploaded to OSM.

Landuse KCCA data conflation.png


As for the landuse2015 the tags were very similar. Only the complementing features are to be conflated.

Table IX: Landuse conflation equivalencies

KCCA Landuse2015 OSM landuse
Key field: Land_cover landuse=*
Tag High density
Low density
Medium density
paved roads
Wetlands natural=wetland

Schools

The schools dataset was loaded into QGIS and converted from csv to Geojson. Then the following column attributes were deleted; ERT Energy, Fcode, Ftype, Remarks and Grid distance. The rest of the column attributes were edited to match the respective OSM tags as listed below. The file was then saved and loaded in JOSM as GeoJson. In JOSM all education related points in OSM were downloaded using the download query wizard. The senior mapper used the ‘amenity=school” query to download all schools as a new OSM layer within the dataset extent.

Using the ‘todo list’ plug-in all schools in the KCCA dataset were selected and cross checked with the schools in the OSM layer. When a school existed in both datasets, attributes would be compared and if there is a contrast the OSM dataset would take precedence as it was collected in 2014 compared to the 2003-2004 collection date of the KCCA dataset.This dataset will also be compared and updated  with the data collected from the field.

The schools layer contained points obtained from UBOS, the ‘name’ field and the complementing features are going to be conflated following the key below. The school points were matched with the respective building :

Table X: Schools conflation equivalencies

UBOS Schools OSM
Key Feature/Dataset field: NAME building= yes amenity=yes Comment
Tag Schools_ubos Name building=school amenity=school=* Building as polygon, amenity as a point

Street lights

The Streetlight dataset was first loaded into QGIS and converted from CSV to geojson. Then all the column attributes that could not be matched with an OSM tag were then deleted. The list of column attributes and what actions were taken against them is listed in the table below. Using the field calculator a new column attribute ‘highway’ was introduced with a default value of ‘street_lamp’.

All non-overlapping features will be tagged as ‘highway=street_lamp’, conflated with their complement and uploaded as points to OSM.

KCCA street_lights OSM highway
Key Street_lights highway=street_lamp Comment
Tag feature street_lamp as points

Informal Settlements

All informal settlements will be tagged as ‘landuse’ = ’informal’. An alternative tagging exists: ‘landuse’ = ’residential’ , ‘residential’ = ’slum’, however this is only a proposed tag. Most common tagging practices will be favored for the sake of consistency. Landuse will be uploaded as a polygon.


Table VIII: Informal settlement conflation mind map

KCCA Tagging OSM Tagging
Key Informal Settlement = feature landuse= residential Comment
Tag residential= slum; inforamal
feature informal The dataset contains the slum name for selected features, this might mean that informal could not necessarily match exactly OSM tagging

Team Approach

Import will be undertaken by experienced OSM mappers, using specific OSM user account, following this <workflow>

References

The import will be discussed first in the Talk-Ug list, and then in the Imports list.

You can see the workflow <here>

Reverse plan

In case of any trouble, JOSM reverter will be used.