Map your own service lines, cell by cell.
Load your own file of service lines. This page counts them in the same cells as Galena's published maps, about 0.7 square kilometres each, and shows each cell's share of lines that are lead, galvanized, not lead or unknown. It all runs in this browser. Your file is never uploaded.
Your service line file
Step 1Use a CSV file with one row for each service line. It needs each line's own ID, its material or category, and its point: latitude and longitude, or X and Y in a coordinate system used in Ontario. The page never looks up addresses.
Your file stays in this browser. The street map comes from galena.craftpine.com.
Files up to 250 MB. The file is read here, in this browser, and is not sent anywhere. Only the street map's tiles are fetched, for the area your lines are in.
A synthetic file of 6,642 lines on a grid in the middle of Lake Ontario, with invented materials in diagonal bands. The example is made up and placed in open water, so it points at no real place.
Fig. 1. The file as read in this browser. Its SHA-256 names this exact version of the file.
Columns and checks
Step 2The page matches your columns to what it needs, using a city's template when your file has that city's published layout. Change a match if it is wrong. The list says what is wrong with the file, if anything, and how to fix it.
Load a file in Step 1. Its columns and checks show here.
What the checks found
The Inventory Checker's three rules for one class from two sides. Canada means the other provinces and territories. United States means the federal baseline inventory.
Schedule 1. Material values in your file
Each value in the material column, and the class the page reads it as. Choose another class if a value was read wrong.
Survey map of your lines, by cell Synthetic example
Step 3Each six-sided cell is an H3 cell at resolution 8, the same cells as Galena's published maps. Its shade is the share of your lines in it that are of the class you choose below. Point at a cell, tap it, or pick it in the table in Step 4 for its figures.
Load a file in Step 1. The map shows here once the file has its points and nothing stops it.
Fig. 3. Your lines, counted in H3 cells at resolution 8.
Schedule 2. Every cell on the map
Step 4The same figures as the map, one row for each cell. Choose a row, then press Enter or Space, to mark its cell on the map. The arrow keys move between rows.
Load a file in Step 1. Its cells show here.
Fig. 4. Every cell of your file.
The templates, and where their columns come from
A template reads a city's published layout: its column names and what each of its material codes means. Each names only columns of the layer as the city publishes it, read on the date given. A template holds no records.
- City of Kitchener, water service pipes: columns OBJECTID, MATERIAL, INSTALLATION_DATE, DIAMETER; ID OBJECTID, material MATERIAL; 18 material codes. Keeps only rows where STATUS is ACTIVE; CATEGORY is ADDRESS.City of Kitchener, published layer, schema read 2026-10-24. Contains information licensed under the Open Government Licence - City of Kitchener. Galena's app template kitchener-water-services. The City of Kitchener has no role in this page and does not endorse it.
- Region of Waterloo, water services in the township systems: columns OBJECTID, Material, InstallYear, Diameter_mm; ID OBJECTID, material Material; 11 material codes.Region of Waterloo, published layer, schema read 2026-10-24. Region of Waterloo Open Data Licence. Galena's app template waterloo-region-water-services. The Region of Waterloo has no role in this page and does not endorse it.
- City of Waterloo, water service leads: columns OBJECTID, LIFECYCLESTATUS, INSTALLDATE, TYPE, MATERIAL; ID OBJECTID, material MATERIAL; 14 material codes. Keeps only rows where TYPE is Service or Private Res Service.City of Waterloo, published layer, schema read 2026-10-24. Contains information licensed under the Open Government Licence - City of Waterloo. New for this page. The City of Waterloo has no role in this page and does not endorse it.
- City of Barrie, water services: columns OBJECTID, ASSETID, TYPE, MATERIAL, OWNEDBY, STATUS; ID OBJECTID, material MATERIAL; 13 material codes. Keeps only rows where TYPE is RESIDENTIAL-DOMESTIC or COMMERCIAL-DOMESTIC or GENERAL SERVICE.City of Barrie, published layer, schema read 2026-11-03. Contains information licensed under the Open Government Licence – Barrie. New for this page. The City of Barrie has no role in this page and does not endorse it.
- Region of Durham, water services: columns OBJECTID, MATERIAL, DIAMETER, REGION_ID; ID OBJECTID, material MATERIAL; 14 material codes.Region of Durham, published layer, schema read 2026-10-24. Contains public sector information made available under The Regional Municipality of Durham's Open Data Licence. New for this page. The Region of Durham has no role in this page and does not endorse it.
1 Notes
Each line is placed at its own point from your file and counted in the H3 cell at resolution 8 that holds it, about 0.7 square kilometres, with the H3 library version 4.5.0, the version that made Galena's published maps. The map shows every cell of your file. The files you download leave out cells with fewer than 10 lines unless you choose to include them, as Galena's published maps do, because a small cell can point at a single home.
The page reads latitude and longitude in degrees, and X and Y in metres in NAD83 UTM zones 15N to 18N, NAD83 MTM zones 8 to 17, and web map metres. It converts X and Y with the transverse Mercator formulas, checked against PROJ to a micrometre. NAD83 is read as WGS 84 with no shift, as PROJ does by default; in Ontario the two differ by a metre or two. Coordinates in NAD27 are not read. The page never looks up addresses.
A line's class is lead, galvanized requiring replacement, not lead or unknown. A column that classes the whole line is used as it stands, through Schedule 1. When your file gives the system side and the customer side apart and no class for the whole line, the page gives each line one class with the Inventory Checker's function, for the rule you choose in Step 2. For the United States that is table 2 to 40 CFR 141.84(d)(6)(iii)(A), with the definitions in 40 CFR 141.2, read on November 3, 2026. For Ontario and Canada it is Galena's design: lead if any part is lead, unknown if any part is unknown, otherwise not lead. Where the rule leaves a line more than one category, the map counts it as unknown, and Step 2 says how many. A connector is not part of the service line (40 CFR 141.2), so it does not change the class.
This page counts your own records. It makes no prediction about any line, and it gives no legal advice.
Your file stays in this browser. Nothing is sent anywhere. The first time you load a file, the page fetches its cell library and its map library from this site. The street map's tiles come from galena.craftpine.com, which learns only which map tiles your browser asks for, as with any web map.