dc-l1-capetown-waterway-nulls

Status: done
Score: 0.000
Duration: 0:44
Cost: 0.70¢
Model: deepseek/deepseek-v4-flash

Map (reference ← swipe → agent)

0:00
Hi, first time asking for help with this. The contractor delivered capetown_waterways.geojson but some features are unusable for our mapping pipeline. Drop any features that cannot represent a valid, usable waterway (a feature needs both a drawable geometry and a proper type to be useful) and keep the rest. I'd also like a top-level dropped_count so I can show my supervisor what we're flagging back at the contractor. Filename waterways_clean.geojson, please. The output should contain only LineString features, each preserving all original columns, with feature_id as the key field. The FeatureCollection must include a top-level dropped_count foreign member (an integer) reporting how many features were removed.
0:00
System info
{
  "adapter": "openrouter",
  "model": "deepseek/deepseek-v4-flash",
  "base_url": "https://openrouter.ai/api/v1"
}
0:02
Let me start by reading the input file to understand its structure and content.
0:02
Read /work/capetown_waterways.geojson
     1	{
     2	  "type": "FeatureCollection",
     3	  "name": "capetown_waterways",
     4	  "crs": {
     5	    "type": "name",
     6	    "properties": {
     7	      "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
     8	    }
     9	  },
    10	  "features": [
    11	    {
    12	      "type": "Feature",
    13	      "geometry": null,
    14	      "properties": {
    15	        "feature_id": 1,
    16	        "name": "Black River Stream",
    17	        "waterway_type": "river"
    18	      }
    19	    },
    20	    {
    21	      "type": "Feature",
    22	      "geometry": null,
    23	      "properties": {
    24	        "feature_id": 2,
    25	        "name": "Salt Stream",
    26	        "waterway_type": "drain"
    27	      }
    28	    },
    29	    {
    30	      "type": "Feature",
    31	      "geometry": null,
    32	      "properties": {
    33	        "feature_id": 3,
    34	        "name": "Diep River",
    35	        "waterway_type": "canal"
    36	      }
    37	    },
    38	    {
    39	      "type": "Feature",
    40	      "geometry": null,
    41	      "properties": {
    42	        "feature_id": 4,
    43	        "name": "Eerste Stream",
    44	        "waterway_type": "ditch"
    45	      }
    46	    },
    47	    {
    48	      "type": "Feature",
    49	      "geometry": null,
    50	      "properties": {
    51	        "feature_id": 5,
    52	        "name": "Lourens Stream",
    53	        "waterway_type": "stream"
    54	      }
    55	    },
    56	    {
    57	      "type": "Feature",
    58	      "geometry": {
    59	        "type": "LineString",
    60	        "coordinates": []
    61	      },
    62	      "properties": {
    63	        "feature_id": 6,
    64	        "name": "Hout Bay River",
    65	        "waterway_type": "river"
    66	      }
    67	    },
    68	    {
    69	      "type": "Feature",
    70	      "geometry": {
    71	        "type": "LineString",
    72	        "coordinates": []
    73	      },
    74	      "properties": {
    75	        "feature_id": 7,
    76	        "name": "Disa Stream",
    77	        "waterway_type": "drain"
    78	      }
    79	    },
    80	    {
    81	      "type": "Feature",
    82	      "geometry": {
    83	        "type": "LineString",
    84	        "coordinates": []
    85	      },
    86	      "properties": {
    87	        "feature_id": 8,
    88	        "name": "Sand Stream",
    89	        "waterway_type": "canal"
    90	      }
    91	    },
    92	    {
    93	      "type": "Feature",
    94	      "geometry": {
    95	        "type": "LineString",
    96	        "coordinates": []
    97	      },
    98	      "properties": {
    99	        "feature_id": 9,
   100	        "name": "Soet River",
   101	        "waterway_type": "ditch"
   102	      }
   103	    },
   104	    {
   105	      "type": "Feature",
   106	      "geometry": {
   107	        "type": "LineString",
   108	        "coordinates": []
   109	      },
   110	      "properties": {
   111	        "feature_id": 10,
   112	        "name": "Klein Liesbeek Stream",
   113	        "waterway_type": "stream"
   114	      }
   115	    },
   116	    {
   117	      "type": "Feature",
   118	      "geometry": null,
   119	      "properties": {
   120	        "feature_id": 11,
   121	        "name": "Kuils Stream",
   122	        "waterway_type": null
   123	      }
   124	    },
   125	    {
   126	      "type": "Feature",
   127	      "geometry": null,
   128	      "properties": {
   129	        "feature_id": 12,
   130	        "name": "Modder River",
   131	        "waterway_type": null
   132	      }
   133	    },
   134	    {
   135	      "type": "Feature",
   136	      "geometry": null,
   137	      "properties": {
   138	        "feature_id": 13,
   139	        "name": "Princess Vlei Stream",
   140	        "waterway_type": null
   141	      }
   142	    },
   143	    {
   144	      "type": "Feature",
   145	      "geometry": null,
   146	      "properties": {
   147	        "feature_id": 14,
   148	        "name": "Riet Stream",
   149	        "waterway_type": null
   150	      }
   151	    },
   152	    {
   153	      "type": "Feature",
   154	      "geometry": null,
   155	      "properties": {
   156	        "feature_id": 15,
   157	        "name": "Schaapen River",
   158	        "waterway_type": null
   159	      }
   160	    },
   161	    {
   162	      "type": "Feature",
   163	      "geometry": {
   164	        "type": "LineString",
   165	        "coordinates": [
   166	          [
   167	            18.675131,
   168	            -34.097358
   169	          ],
   170	          [
   171	            18.644434,
   172	            -34.095261
   173	          ],
   174	          [
   175	            18.593333,
   176	            -34.054287
   177	          ]
   178	        ]
   179	      },
   180	      "properties": {
   181	        "feature_id": 16,
   182	        "name": "Steenbras Stream",
   183	        "waterway_type": null
   184	      }
   185	    },
   186	    {
   187	      "type": "Feature",
   188	      "geometry": {
   189	        "type": "LineString",
   190	        "coordinates": [
   191	          [
   192	            18.476831,
   193	            -34.056422
   194	          ],
   195	          [
   196	            18.432213,
   197	            -34.00126
   198	          ],
   199	          [
   200	            18.38696,
   201	            -33.920017
   202	          ]
   203	        ]
   204	      },
   205	      "properties": {
   206	        "feature_id": 17,
   207	        "name": "Sir Lowry Stream",
   208	        "waterway_type": null
   209	      }
   210	    },
   211	    {
   212	      "type": "Feature",
   213	      "geometry": {
   214	        "type": "LineString",
   215	        "coordinates": [
   216	          [
   217	            18.350029,
   218	            -33.922963
   219	          ],
   220	          [
   221	            18.357716,
   222	            -33.862693
   223	          ],
   224	          [
   225	            18.38548,
   226	            -33.811815
   227	          ]
   228	        ]
   229	      },
   230	      "properties": {
   231	        "feature_id": 18,
   232	        "name": "Constantia River",
   233	        "waterway_type": null
   234	      }
   235	    },
   236	    {
   237	      "type": "Feature",
   238	      "geometry": {
   239	        "type": "LineString",
   240	        "coordinates": [
   241	          [
   242	            18.482936,
   243	            -33.81301
   244	          ],
   245	          [
   246	            18.531519,
   247	            -33.800031
   248	          ],
   249	          [
   250	            18.591089,
   251	            -33.823751
   252	          ]
   253	        ]
   254	      },
   255	      "properties": {
   256	        "feature_id": 19,
   257	        "name": "Klipfontein Stream",
   258	        "waterway_type": null
   259	      }
   260	    },
   261	    {
   262	      "type": "Feature",
   263	      "geometry": {
   264	        "type": "LineString",
   265	        "coordinates": [
   266	          [
   267	            18.678279,
   268	            -33.822156
   269	          ],
   270	          [
   271	            18.695646,
   272	            -33.867752
   273	          ],
   274	          [
   275	            18.698602,
   276	            -33.945448
   277	          ]
   278	        ]
   279	      },
   280	      "properties": {
   281	        "feature_id": 20,
   282	        "name": "Plumstead Stream",
   283	        "waterway_type": null
   284	      }
   285	    },
   286	    {
   287	      "type": "Feature",
   288	      "geometry": {
   289	        "type": "LineString",
   290	        "coordinates": [
   291	          [
   292	            18.64611,
   293	            -33.94245
   294	          ],
   295	          [
   296	            18.606483,
   297	            -34.006979
   298	          ],
   299	          [
   300	            18.548438,
   301	            -34.071103
   302	          ]
   303	        ]
   304	      },
   305	      "properties": {
   306	        "feature_id": 21,
   307	        "name": null,
   308	        "waterway_type": "river"
   309	      }
   310	    },
   311	    {
   312	      "type": "Feature",
   313	      "geometry": {
   314	        "type": "LineString",
   315	        "coordinates": [
   316	          [
   317	            18.434177,
   318	            -34.069308
   319	          ],
   320	          [
   321	            18.396375,
   322	            -34.096669
   323	          ],
   324	          [
   325	            18.363484,
   326	            -34.091471
   327	          ]
   328	        ]
   329	      },
   330	      "properties": {
   331	        "feature_id": 22,
   332	        "name": null,
   333	        "waterway_type": "drain"
   334	      }
   335	    },
   336	    {
   337	      "type": "Feature",
   338	      "geometry": {
   339	        "type": "LineString",
   340	        "coordinates": [
   341	          [
   342	            18.357053,
   343	            -34.092439
   344	          ],
   345	          [
   346	            18.377185,
   347	            -34.058844
   348	          ],
   349	          [
   350	            18.418269,
   351	            -33.988844
   352	          ]
   353	        ]
   354	      },
   355	      "properties": {
   356	        "feature_id": 23,
   357	        "name": null,
   358	        "waterway_type": "canal"
   359	      }
   360	    },
   361	    {
   362	      "type": "Feature",
   363	      "geometry": {
   364	        "type": "LineString",
   365	        "coordinates": [
   366	          [
   367	            18.529212,
   368	            -33.991734
   369	          ],
   370	          [
   371	            18.577397,
   372	            -33.92639
   373	          ],
   374	          [
   375	            18.631474,
   376	            -33.852446
   377	          ]
   378	        ]
   379	      },
   380	      "properties": {
   381	        "feature_id": 24,
   382	        "name": null,
   383	        "waterway_type": "ditch"
   384	      }
   385	    },
   386	    {
   387	      "type": "Feature",
   388	      "geometry": {
   389	        "type": "LineString",
   390	        "coordinates": [
   391	          [
   392	            18.69512,
   393	            -33.854745
   394	          ],
   395	          [
   396	            18.699836,
   397	            -33.814463
   398	          ],
   399	          [
   400	            18.68664,
   401	            -33.800862
   402	          ]
   403	        ]
   404	      },
   405	      "properties": {
   406	        "feature_id": 25,
   407	        "name": null,
   408	        "waterway_type": "stream"
   409	      }
   410	    },
   411	    {
   412	      "type": "Feature",
   413	      "geometry": {
   414	        "type": "LineString",
   415	        "coordinates": [
   416	          [
   417	            18.608518,
   418	            -33.800571
   419	          ],
   420	          [
   421	            18.562766,
   422	            -33.820372
   423	          ],
   424	          [
   425	            18.501884,
   426	            -33.878938
   427	          ]
   428	        ]
   429	      },
   430	      "properties": {
   431	        "feature_id": 26,
   432	        "name": "Liesbeek Stream",
   433	        "waterway_type": "river"
   434	      }
   435	    },
   436	    {
   437	      "type": "Feature",
   438	      "geometry": {
   439	        "type": "LineString",
   440	        "coordinates": [
   441	          [
   442	            18.397951,
   443	            -33.876311
   444	          ],
   445	          [
   446	            18.36964,
   447	            -33.938979
   448	          ],
   449	          [
   450	            18.351439,
   451	            -34.018796
   452	          ]
   453	        ]
   454	      },
   455	      "properties": {
   456	        "feature_id": 27,
   457	        "name": "Black River River",
   458	        "waterway_type": "drain"
   459	      }
   460	    },
   461	    {
   462	      "type": "Feature",
   463	      "geometry": {
   464	        "type": "LineString",
   465	        "coordinates": [
   466	          [
   467	            18.375963,
   468	            -34.016116
   469	          ],
   470	          [
   471	            18.407114,
   472	            -34.067168
   473	          ],
   474	          [
   475	            18.458611,
   476	            -34.098842
   477	          ]
   478	        ]
   479	      },
   480	      "properties": {
   481	        "feature_id": 28,
   482	        "name": "Salt Stream",
   483	        "waterway_type": "canal"
   484	      }
   485	    },
   486	    {
   487	      "type": "Feature",
   488	      "geometry": {
   489	        "type": "LineString",
   490	        "coordinates": [
   491	          [
   492	            18.575191,
   493	            -34.09844
   494	          ],
   495	          [
   496	            18.619566,
   497	            -34.093491
   498	          ],
   499	          [
   500	            18.664324,
   501	            -34.049485
   502	          ]
   503	        ]
   504	      },
   505	      "properties": {
   506	        "feature_id": 29,
   507	        "name": "Diep Stream",
   508	        "waterway_type": "ditch"
   509	      }
   510	    },
   511	    {
   512	      "type": "Feature",
   513	      "geometry": {
   514	        "type": "LineString",
   515	        "coordinates": [
   516	          [
   517	            18.699921,
   518	            -34.05171
   519	          ],
   520	          [
   521	            18.691653,
   522	            -33.995063
   523	          ],
   524	          [
   525	            18.663239,
   526	            -33.913635
   527	          ]
   528	        ]
   529	      },
   530	      "properties": {
   531	        "feature_id": 30,
   532	        "name": "Eerste River",
   533	        "waterway_type": "stream"
   534	      }
   535	    },
   536	    {
   537	      "type": "Feature",
   538	      "geometry": {
   539	        "type": "LineString",
   540	        "coordinates": [
   541	          [
   542	            18.565016,
   543	            -33.916553
   544	          ],
   545	          [
   546	            18.516377,
   547	            -33.857457
   548	          ],
   549	          [
   550	            18.456965,
   551	            -33.809401
   552	          ]
   553	        ]
   554	      },
   555	      "properties": {
   556	        "feature_id": 31,
   557	        "name": "Lourens Stream",
   558	        "waterway_type": "river"
   559	      }
   560	    },
   561	    {
   562	      "type": "Feature",
   563	      "geometry": {
   564	        "type": "LineString",
   565	        "coordinates": [
   566	          [
   567	            18.370716,
   568	            -33.810475
   569	          ],
   570	          [
   571	            18.3539,
   572	            -33.800308
   573	          ],
   574	          [
   575	            18.351676,
   576	            -33.827404
   577	          ]
   578	        ]
   579	      },
   580	      "properties": {
   581	        "feature_id": 32,
   582	        "name": "Hout Bay Stream",
   583	        "waterway_type": "drain"
   584	      }
   585	    },
   586	    {
   587	      "type": "Feature",
   588	      "geometry": {
   589	        "type": "LineString",
   590	        "coordinates": [
   591	          [
   592	            18.405419,
   593	            -33.8257
   594	          ],
   595	          [
   596	            18.445387,
   597	            -33.873302
   598	          ],
   599	          [
   600	            18.503651,
   601	            -33.951992
   602	          ]
   603	        ]
   604	      },
   605	      "properties": {
   606	        "feature_id": 33,
   607	        "name": "Disa River",
   608	        "waterway_type": "canal"
   609	      }
   610	    },
   611	    {
   612	      "type": "Feature",
   613	      "geometry": {
   614	        "type": "LineString",
   615	        "coordinates": [
   616	          [
   617	            18.617617,
   618	            -33.948992
   619	          ],
   620	          [
   621	            18.655044,
   622	            -34.012977
   623	          ],
   624	          [
   625	            18.687315,
   626	            -34.074848
   627	          ]
   628	        ]
   629	      },
   630	      "properties": {
   631	        "feature_id": 34,
   632	        "name": "Sand Stream",
   633	        "waterway_type": "ditch"
   634	      }
   635	    },
   636	    {
   637	      "type": "Feature",
   638	      "geometry": {
   639	        "type": "LineString",
   640	        "coordinates": [
   641	          [
   642	            18.692343,
   643	            -34.07316
   644	          ],
   645	          [
   646	            18.671677,
   647	            -34.0979
   648	          ],
   649	          [
   650	            18.630054,
   651	            -34.089161
   652	          ]
   653	        ]
   654	      },
   655	      "properties": {
   656	        "feature_id": 35,
   657	        "name": "Soet Stream",
   658	        "waterway_type": "stream"
   659	      }
   660	    },
   661	    {
   662	      "type": "Feature",
   663	      "geometry": {
   664	        "type": "LineString",
   665	        "coordinates": [
   666	          [
   667	            18.518682,
   668	            -34.090253
   669	          ],
   670	          [
   671	            18.470597,
   672	            -34.054239
   673	          ],
   674	          [
   675	            18.416862,
   676	            -33.982488
   677	          ]
   678	        ]
   679	      },
   680	      "properties": {
   681	        "feature_id": 36,
   682	        "name": "Klein Liesbeek River",
   683	        "waterway_type": "river"
   684	      }
   685	    },
   686	    {
   687	      "type": "Feature",
   688	      "geometry": {
   689	        "type": "LineString",
   690	        "coordinates": [
   691	          [
   692	            18.354399,
   693	            -33.98541
   694	          ],
   695	          [
   696	            18.350268,
   697	            -33.919952
   698	          ],
   699	          [
   700	            18.364179,
   701	            -33.847569
   702	          ]
   703	        ]
   704	      },
   705	      "properties": {
   706	        "feature_id": 37,
   707	        "name": "Kuils Stream",
   708	        "waterway_type": "drain"
   709	      }
   710	    },
   711	    {
   712	      "type": "Feature",
   713	      "geometry": {
   714	        "type": "LineString",
   715	        "coordinates": [
   716	          [
   717	            18.443339,
   718	            -33.849781
   719	          ],
   720	          [
   721	            18.489293,
   722	            -33.811789
   723	          ],
   724	          [
   725	            18.550203,
   726	            -33.801704
   727	          ]
   728	        ]
   729	      },
   730	      "properties": {
   731	        "feature_id": 38,
   732	        "name": "Modder Stream",
   733	        "waterway_type": "canal"
   734	      }
   735	    },
   736	    {
   737	      "type": "Feature",
   738	      "geometry": {
   739	        "type": "LineString",
   740	        "coordinates": [
   741	          [
   742	            18.653489,
   743	            -33.801283
   744	          ],
   745	          [
   746	            18.681318,
   747	            -33.823787
   748	          ],
   749	          [
   750	            18.698818,
   751	            -33.884768
   752	          ]
   753	        ]
   754	      },
   755	      "properties": {
   756	        "feature_id": 39,
   757	        "name": "Princess Vlei River",
   758	        "waterway_type": "ditch"
   759	      }
   760	    },
   761	    {
   762	      "type": "Feature",
   763	      "geometry": {
   764	        "type": "LineString",
   765	        "coordinates": [
   766	          [
   767	            18.672923,
   768	            -33.882079
   769	          ],
   770	          [
   771	            18.64132,
   772	            -33.945514
   773	          ],
   774	          [
   775	            18.589435,
   776	            -34.024544
   777	          ]
   778	        ]
   779	      },
   780	      "properties": {
   781	        "feature_id": 40,
   782	        "name": "Riet Stream",
   783	        "waterway_type": "stream"
   784	      }
   785	    },
   786	    {
   787	      "type": "Feature",
   788	      "geometry": {
   789	        "type": "LineString",
   790	        "coordinates": [
   791	          [
   792	            18.472795,
   793	            -34.021926
   794	          ],
   795	          [
   796	            18.428668,
   797	            -34.071142
   798	          ],
   799	          [
   800	            18.384411,
   801	            -34.099512
   802	          ]
   803	        ]
   804	      },
   805	      "properties": {
   806	        "feature_id": 41,
   807	        "name": "Schaapen Stream",
   808	        "waterway_type": "river"
   809	      }
   810	    },
   811	    {
   812	      "type": "Feature",
   813	      "geometry": {
   814	        "type": "LineString",
   815	        "coordinates": [
   816	          [
   817	            18.350155,
   818	            -34.09924
   819	          ],
   820	          [
   821	            18.359001,
   822	            -34.091448
   823	          ],
   824	          [
   825	            18.388063,
   826	            -34.044494
   827	          ]
   828	        ]
   829	      },
   830	      "properties": {
   831	        "feature_id": 42,
   832	        "name": "Steenbras River",
   833	        "waterway_type": "drain"
   834	      }
   835	    },
   836	    {
   837	      "type": "Feature",
   838	      "geometry": {
   839	        "type": "LineString",
   840	        "coordinates": [
   841	          [
   842	            18.487037,
   843	            -34.046805
   844	          ],
   845	          [
   846	            18.535726,
   847	            -33.98878
   848	          ],
   849	          [
   850	            18.59497,
   851	            -33.907323
   852	          ]
   853	        ]
   854	      },
   855	      "properties": {
   856	        "feature_id": 43,
   857	        "name": "Sir Lowry Stream",
   858	        "waterway_type": "canal"
   859	      }
   860	    },
   861	    {
   862	      "type": "Feature",
   863	      "geometry": {
   864	        "type": "LineString",
   865	        "coordinates": [
   866	          [
   867	            18.680267,
   868	            -33.910207
   869	          ],
   870	          [
   871	            18.69653,
   872	            -33.852396
   873	          ],
   874	          [
   875	            18.698021,
   876	            -33.807255
   877	          ]
   878	        ]
   879	      },
   880	      "properties": {
   881	        "feature_id": 44,
   882	        "name": "Constantia Stream",
   883	        "waterway_type": "ditch"
   884	      }
   885	    },
   886	    {
   887	      "type": "Feature",
   888	      "geometry": {
   889	        "type": "LineString",
   890	        "coordinates": [
   891	          [
   892	            18.643034,
   893	            -33.808206
   894	          ],
   895	          [
   896	            18.602732,
   897	            -33.800869
   898	          ],
   899	          [
   900	            18.544256,
   901	            -33.83129
   902	          ]
   903	        ]
   904	      },
   905	      "properties": {
   906	        "feature_id": 45,
   907	        "name": "Klipfontein River",
   908	        "waterway_type": "stream"
   909	      }
   910	    },
   911	    {
   912	      "type": "Feature",
   913	      "geometry": {
   914	        "type": "LineString",
   915	        "coordinates": [
   916	          [
   917	            18.430603,
   918	            -33.82948
   919	          ],
   920	          [
   921	            18.393556,
   922	            -33.878997
   923	          ],
   924	          [
   925	            18.36191,
   926	            -33.958531
   927	          ]
   928	        ]
   929	      },
   930	      "properties": {
   931	        "feature_id": 46,
   932	        "name": "Plumstead Stream",
   933	        "waterway_type": "river"
   934	      }
   935	    },
   936	    {
   937	      "type": "Feature",
   938	      "geometry": {
   939	        "type": "LineString",
   940	        "coordinates": [
   941	          [
   942	            18.358285,
   943	            -33.955535
   944	          ],
   945	          [
   946	            18.379483,
   947	            -34.018855
   948	          ],
   949	          [
   950	            18.421638,
   951	            -34.078355
   952	          ]
   953	        ]
   954	      },
   955	      "properties": {
   956	        "feature_id": 47,
   957	        "name": "Camps Bay Stream",
   958	        "waterway_type": "drain"
   959	      }
   960	    },
   961	    {
   962	      "type": "Feature",
   963	      "geometry": {
   964	        "type": "LineString",
   965	        "coordinates": [
   966	          [
   967	            18.533422,
   968	            -34.076777
   969	          ],
   970	          [
   971	            18.581401,
   972	            -34.09885
   973	          ],
   974	          [
   975	            18.634786,
   976	            -34.086587
   977	          ]
   978	        ]
   979	      },
   980	      "properties": {
   981	        "feature_id": 48,
   982	        "name": "Bokramspruit River",
   983	        "waterway_type": "canal"
   984	      }
   985	    },
   986	    {
   987	      "type": "Feature",
   988	      "geometry": {
   989	        "type": "LineString",
   990	        "coordinates": [
   991	          [
   992	            18.696058,
   993	            -34.0878
   994	          ],
   995	          [
   996	            18.699603,
   997	            -34.049435
   998	          ],
   999	          [
  1000	            18.684979,
  1001	            -33.97607
  1002	          ]
  1003	        ]
  1004	      },
  1005	      "properties": {
  1006	        "feature_id": 49,
  1007	        "name": "Mosselbank Stream",
  1008	        "waterway_type": "ditch"
  1009	      }
  1010	    },
  1011	    {
  1012	      "type": "Feature",
  1013	      "geometry": {
  1014	        "type": "LineString",
  1015	        "coordinates": [
  1016	          [
  1017	            18.604792,
  1018	            -33.979019
  1019	          ],
  1020	          [
  1021	            18.558642,
  1022	            -33.913571
  1023	          ],
  1024	          [
  1025	            18.497715,
  1026	            -33.842887
  1027	          ]
  1028	        ]
  1029	      },
  1030	      "properties": {
  1031	        "feature_id": 50,
  1032	        "name": "Skoolspruit Stream",
  1033	        "waterway_type": "stream"
  1034	      }
  1035	    },
  1036	    {
  1037	      "type": "Feature",
  1038	      "geometry": {
  1039	        "type": "LineString",
  1040	        "coordinates": [
  1041	          [
  1042	            18.395091,
  1043	            -33.845009
  1044	          ],
  1045	          [
  1046	            18.367746,
  1047	            -33.809378
  1048	          ],
  1049	          [
  1050	            18.35095,
  1051	            -33.802829
  1052	          ]
  1053	        ]
  1054	      },
  1055	      "properties": {
  1056	        "feature_id": 51,
  1057	        "name": "Vergenoegd River",
  1058	        "waterway_type": "river"
  1059	      }
  1060	    },
  1061	    {
  1062	      "type": "Feature",
  1063	      "geometry": {
  1064	        "type": "LineString",
  1065	        "coordinates": [
  1066	          [
  1067	            18.378214,
  1068	            -33.802278
  1069	          ],
  1070	          [
  1071	            18.410262,
  1072	            -33.827442
  1073	          ],
  1074	          [
  1075	            18.462528,
  1076	            -33.890721
  1077	          ]
  1078	        ]
  1079	      },
  1080	      "properties": {
  1081	        "feature_id": 52,
  1082	        "name": "Liesbeek Stream",
  1083	        "waterway_type": "drain"
  1084	      }
  1085	    },
  1086	    {
  1087	      "type": "Feature",
  1088	      "geometry": {
  1089	        "type": "LineString",
  1090	        "coordinates": [
  1091	          [
  1092	            18.579211,
  1093	            -33.887977
  1094	          ],
  1095	          [
  1096	            18.623083,
  1097	            -33.952058
  1098	          ],
  1099	          [
  1100	            18.666833,
  1101	            -34.03015
  1102	          ]
  1103	        ]
  1104	      },
  1105	      "properties": {
  1106	        "feature_id": 53,
  1107	        "name": "Black River Stream",
  1108	        "waterway_type": "canal"
  1109	      }
  1110	    },
  1111	    {
  1112	      "type": "Feature",
  1113	      "geometry": {
  1114	        "type": "LineString",
  1115	        "coordinates": [
  1116	          [
  1117	            18.699743,
  1118	            -34.027599
  1119	          ],
  1120	          [
  1121	            18.69032,
  1122	            -34.074885
  1123	          ],
  1124	          [
  1125	            18.660616,
  1126	            -34.099897
  1127	          ]
  1128	        ]
  1129	      },
  1130	      "properties": {
  1131	        "feature_id": 54,
  1132	        "name": "Salt River",
  1133	        "waterway_type": "ditch"
  1134	      }
  1135	    },
  1136	    {
  1137	      "type": "Feature",
  1138	      "geometry": {
  1139	        "type": "LineString",
  1140	        "coordinates": [
  1141	          [
  1142	            18.560904,
  1143	            -34.099756
  1144	          ],
  1145	          [
  1146	            18.512172,
  1147	            -34.089136
  1148	          ],
  1149	          [
  1150	            18.453104,
  1151	            -34.039323
  1152	          ]
  1153	        ]
  1154	      },
  1155	      "properties": {
  1156	        "feature_id": 55,
  1157	        "name": "Diep Stream",
  1158	        "waterway_type": "stream"
  1159	      }
  1160	    },
  1161	    {
  1162	      "type": "Feature",
  1163	      "geometry": {
  1164	        "type": "LineString",
  1165	        "coordinates": [
  1166	          [
  1167	            18.368772,
  1168	            -34.041715
  1169	          ],
  1170	          [
  1171	            18.353065,
  1172	            -33.982423
  1173	          ],
  1174	          [
  1175	            18.352308,
  1176	            -33.901092
  1177	          ]
  1178	        ]
  1179	      },
  1180	      "properties": {
  1181	        "feature_id": 56,
  1182	        "name": "Eerste Stream",
  1183	        "waterway_type": "river"
  1184	      }
  1185	    },
  1186	    {
  1187	      "type": "Feature",
  1188	      "geometry": {
  1189	        "type": "LineString",
  1190	        "coordinates": [
  1191	          [
  1192	            18.40853,
  1193	            -33.903937
  1194	          ],
  1195	          [
  1196	            18.449161,
  1197	            -33.847521
  1198	          ],
  1199	          [
  1200	            18.507838,
  1201	            -33.805381
  1202	          ]
  1203	        ]
  1204	      },
  1205	      "properties": {
  1206	        "feature_id": 57,
  1207	        "name": "Lourens River",
  1208	        "waterway_type": "drain"
  1209	      }
  1210	    },
  1211	    {
  1212	      "type": "Feature",
  1213	      "geometry": {
  1214	        "type": "LineString",
  1215	        "coordinates": [
  1216	          [
  1217	            18.621164,
  1218	            -33.806206
  1219	          ],
  1220	          [
  1221	            18.657825,
  1222	            -33.801714
  1223	          ],
  1224	          [
  1225	            18.688842,
  1226	            -33.835403
  1227	          ]
  1228	        ]
  1229	      },
  1230	      "properties": {
  1231	        "feature_id": 58,
  1232	        "name": "Hout Bay Stream",
  1233	        "waterway_type": "canal"
  1234	      }
  1235	    },
  1236	    {
  1237	      "type": "Feature",
  1238	      "geometry": {
  1239	        "type": "LineString",
  1240	        "coordinates": [
  1241	          [
  1242	            18.691062,
  1243	            -33.83349
  1244	          ],
  1245	          [
  1246	            18.669337,
  1247	            -33.884828
  1248	          ],
  1249	          [
  1250	            18.626655,
  1251	            -33.965055
  1252	          ]
  1253	        ]
  1254	      },
  1255	      "properties": {
  1256	        "feature_id": 59,
  1257	        "name": "Disa Stream",
  1258	        "waterway_type": "ditch"
  1259	      }
  1260	    },
  1261	    {
  1262	      "type": "Feature",
  1263	      "geometry": {
  1264	        "type": "LineString",
  1265	        "coordinates": [
  1266	          [
  1267	            18.514474,
  1268	            -33.962067
  1269	          ],
  1270	          [
  1271	            18.466609,
  1272	            -34.024602
  1273	          ],
  1274	          [
  1275	            18.413581,
  1276	            -34.081619
  1277	          ]
  1278	        ]
  1279	      },
  1280	      "properties": {
  1281	        "feature_id": 60,
  1282	        "name": "Sand River",
  1283	        "waterway_type": "stream"
  1284	      }
  1285	    },
  1286	    {
  1287	      "type": "Feature",
  1288	      "geometry": {
  1289	        "type": "LineString",
  1290	        "coordinates": [
  1291	          [
  1292	            18.35351,
  1293	            -34.080153
  1294	          ],
  1295	          [
  1296	            18.350551,
  1297	            -34.099517
  1298	          ],
  1299	          [
  1300	            18.365886,
  1301	            -34.083753
  1302	          ]
  1303	        ]
  1304	      },
  1305	      "properties": {
  1306	        "feature_id": 61,
  1307	        "name": "Soet Stream",
  1308	        "waterway_type": "river"
  1309	      }
  1310	    },
  1311	    {
  1312	      "type": "Feature",
  1313	      "geometry": {
  1314	        "type": "LineString",
  1315	        "coordinates": [
  1316	          [
  1317	            18.447088,
  1318	            -34.085084
  1319	          ],
  1320	          [
  1321	            18.493427,
  1322	            -34.044442
  1323	          ],
  1324	          [
  1325	            18.554364,
  1326	            -33.969602
  1327	          ]
  1328	        ]
  1329	      },
  1330	      "properties": {
  1331	        "feature_id": 62,
  1332	        "name": "Klein Liesbeek Stream",
  1333	        "waterway_type": "drain"
  1334	      }
  1335	    },
  1336	    {
  1337	      "type": "Feature",
  1338	      "geometry": {
  1339	        "type": "LineString",
  1340	        "coordinates": [
  1341	          [
  1342	            18.656311,
  1343	            -33.972572
  1344	          ],
  1345	          [
  1346	            18.683167,
  1347	            -33.907259
  1348	          ],
  1349	          [
  1350	            18.699257,
  1351	            -33.838409
  1352	          ]
  1353	        ]
  1354	      },
  1355	      "properties": {
  1356	        "feature_id": 63,
  1357	        "name": "Kuils River",
  1358	        "waterway_type": "canal"
  1359	      }
  1360	    },
  1361	    {
  1362	      "type": "Feature",
  1363	      "geometry": {
  1364	        "type": "LineString",
  1365	        "coordinates": [
  1366	          [
  1367	            18.670629,
  1368	            -33.840436
  1369	          ],
  1370	          [
  1371	            18.638139,
  1372	            -33.807235
  1373	          ],
  1374	          [
  1375	            18.5855,
  1376	            -33.804233
  1377	          ]
  1378	        ]
  1379	      },
  1380	      "properties": {
  1381	        "feature_id": 64,
  1382	        "name": "Modder Stream",
  1383	        "waterway_type": "ditch"
  1384	      }
  1385	    },
  1386	    {
  1387	      "type": "Feature",
  1388	      "geometry": {
  1389	        "type": "LineString",
  1390	        "coordinates": [
  1391	          [
  1392	            18.46879,
  1393	            -33.803555
  1394	          ],
  1395	          [
  1396	            18.425179,
  1397	            -33.831331
  1398	          ],
  1399	          [
  1400	            18.381943,
  1401	            -33.896787
  1402	          ]
  1403	        ]
  1404	      },
  1405	      "properties": {
  1406	        "feature_id": 65,
  1407	        "name": "Princess Vlei Stream",
  1408	        "waterway_type": "stream"
  1409	      }
  1410	    },
  1411	    {
  1412	      "type": "Feature",
  1413	      "geometry": {
  1414	        "type": "LineString",
  1415	        "coordinates": [
  1416	          [
  1417	            18.350383,
  1418	            -33.893993
  1419	          ],
  1420	          [
  1421	            18.360383,
  1422	            -33.958598
  1423	          ],
  1424	          [
  1425	            18.390725,
  1426	            -34.035604
  1427	          ]
  1428	        ]
  1429	      },
  1430	      "properties": {
  1431	        "feature_id": 66,
  1432	        "name": "Riet River",
  1433	        "waterway_type": "river"
  1434	      }
  1435	    },
  1436	    {
  1437	      "type": "Feature",
  1438	      "geometry": {
  1439	        "type": "LineString",
  1440	        "coordinates": [
  1441	          [
  1442	            18.491161,
  1443	            -34.033124
  1444	          ],
  1445	          [
  1446	            18.539928,
  1447	            -34.07839
  1448	          ],
  1449	          [
  1450	            18.598811,
  1451	            -34.099997
  1452	          ]
  1453	        ]
  1454	      },
  1455	      "properties": {
  1456	        "feature_id": 67,
  1457	        "name": "Schaapen Stream",
  1458	        "waterway_type": "drain"
  1459	      }
  1460	    },
  1461	    {
  1462	      "type": "Feature",
  1463	      "geometry": {
  1464	        "type": "LineString",
  1465	        "coordinates": [
  1466	          [
  1467	            18.682166,
  1468	            -34.099986
  1469	          ],
  1470	          [
  1471	            18.697315,
  1472	            -34.08656
  1473	          ],
  1474	          [
  1475	            18.697339,
  1476	            -34.033982
  1477	          ]
  1478	        ]
  1479	      },
  1480	      "properties": {
  1481	        "feature_id": 68,
  1482	        "name": "Steenbras Stream",
  1483	        "waterway_type": "canal"
  1484	      }
  1485	    },
  1486	    {
  1487	      "type": "Feature",
  1488	      "geometry": {
  1489	        "type": "LineString",
  1490	        "coordinates": [
  1491	          [
  1492	            18.63989,
  1493	            -34.036451
  1494	          ],
  1495	          [
  1496	            18.598935,
  1497	            -33.976004
  1498	          ],
  1499	          [
  1500	            18.540064,
  1501	            -33.894953
  1502	          ]
  1503	        ]
  1504	      },
  1505	      "properties": {
  1506	        "feature_id": 69,
  1507	        "name": "Sir Lowry River",
  1508	        "waterway_type": "ditch"
  1509	      }
  1510	    },
  1511	    {
  1512	      "type": "Feature",
  1513	      "geometry": {
  1514	        "type": "LineString",
  1515	        "coordinates": [
  1516	          [
  1517	            18.427083,
  1518	            -33.897755
  1519	          ],
  1520	          [
  1521	            18.390813,
  1522	            -33.842841
  1523	          ],
  1524	          [
  1525	            18.360429,
  1526	            -33.803782
  1527	          ]
  1528	        ]
  1529	      },
  1530	      "properties": {
  1531	        "feature_id": 70,
  1532	        "name": "Constantia Stream",
  1533	        "waterway_type": "stream"
  1534	      }
  1535	    },
  1536	    {
  1537	      "type": "Feature",
  1538	      "geometry": {
  1539	        "type": "LineString",
  1540	        "coordinates": [
  1541	          [
  1542	            18.359614,
  1543	            -33.804481
  1544	          ],
  1545	          [
  1546	            18.381865,
  1547	            -33.802842
  1548	          ],
  1549	          [
  1550	            18.425067,
  1551	            -33.839733
  1552	          ]
  1553	        ]
  1554	      },
  1555	      "properties": {
  1556	        "feature_id": 71,
  1557	        "name": "Klipfontein Stream",
  1558	        "waterway_type": "river"
  1559	      }
  1560	    },
  1561	    {
  1562	      "type": "Feature",
  1563	      "geometry": {
  1564	        "type": "LineString",
  1565	        "coordinates": [
  1566	          [
  1567	            18.537628,
  1568	            -33.837721
  1569	          ],
  1570	          [
  1571	            18.585372,
  1572	            -33.890782
  1573	          ],
  1574	          [
  1575	            18.638035,
  1576	            -33.97155
  1577	          ]
  1578	        ]
  1579	      },
  1580	      "properties": {
  1581	        "feature_id": 72,
  1582	        "name": "Plumstead River",
  1583	        "waterway_type": "drain"
  1584	      }
  1585	    },
  1586	    {
  1587	      "type": "Feature",
  1588	      "geometry": {
  1589	        "type": "LineString",
  1590	        "coordinates": [
  1591	          [
  1592	            18.696898,
  1593	            -33.968577
  1594	          ],
  1595	          [
  1596	            18.699269,
  1597	            -34.030207
  1598	          ],
  1599	          [
  1600	            18.683225,
  1601	            -34.084631
  1602	          ]
  1603	        ]
  1604	      },
  1605	      "properties": {
  1606	        "feature_id": 73,
  1607	        "name": "Camps Bay Stream",
  1608	        "waterway_type": "canal"
  1609	      }
  1610	    },
  1611	    {
  1612	      "type": "Feature",
  1613	      "geometry": {
  1614	        "type": "LineString",
  1615	        "coordinates": [
  1616	          [
  1617	            18.60102,
  1618	            -34.083282
  1619	          ],
  1620	          [
  1621	            18.554499,
  1622	            -34.099899
  1623	          ],
  1624	          [
  1625	            18.493562,
  1626	            -34.080664
  1627	          ]
  1628	        ]
  1629	      },
  1630	      "properties": {
  1631	        "feature_id": 74,
  1632	        "name": "Bokramspruit Stream",
  1633	        "waterway_type": "ditch"
  1634	      }
  1635	    },
  1636	    {
  1637	      "type": "Feature",
  1638	      "geometry": {
  1639	        "type": "LineString",
  1640	        "coordinates": [
  1641	          [
  1642	            18.392306,
  1643	            -34.082111
  1644	          ],
  1645	          [
  1646	            18.365943,
  1647	            -34.039269
  1648	          ],
  1649	          [
  1650	            18.350562,
  1651	            -33.963097
  1652	          ]
  1653	        ]
  1654	      },
  1655	      "properties": {
  1656	        "feature_id": 75,
  1657	        "name": "Mosselbank River",
  1658	        "waterway_type": "stream"
  1659	      }
  1660	    },
  1661	    {
  1662	      "type": "Feature",
  1663	      "geometry": {
  1664	        "type": "LineString",
  1665	        "coordinates": [
  1666	          [
  1667	            18.38055,
  1668	            -33.966083
  1669	          ],
  1670	          [
  1671	            18.413476,
  1672	            -33.901029
  1673	          ],
  1674	          [
  1675	            18.466481,
  1676	            -33.834144
  1677	          ]
  1678	        ]
  1679	      },
  1680	      "properties": {
  1681	        "feature_id": 76,
  1682	        "name": "Skoolspruit Stream",
  1683	        "waterway_type": "river"
  1684	      }
  1685	    },
  1686	    {
  1687	      "type": "Feature",
  1688	      "geometry": {
  1689	        "type": "LineString",
  1690	        "coordinates": [
  1691	          [
  1692	            18.583201,
  1693	            -33.836072
  1694	          ],
  1695	          [
  1696	            18.626544,
  1697	            -33.805364
  1698	          ],
  1699	          [
  1700	            18.669259,
  1701	            -33.805916
  1702	          ]
  1703	        ]
  1704	      },
  1705	      "properties": {
  1706	        "feature_id": 77,
  1707	        "name": "Vergenoegd Stream",
  1708	        "waterway_type": "drain"
  1709	      }
  1710	    },
  1711	    {
  1712	      "type": "Feature",
  1713	      "geometry": {
  1714	        "type": "LineString",
  1715	        "coordinates": [
  1716	          [
  1717	            18.699465,
  1718	            -33.80511
  1719	          ],
  1720	          [
  1721	            18.68889,
  1722	            -33.835446
  1723	          ],
  1724	          [
  1725	            18.657914,
  1726	            -33.902955
  1727	          ]
  1728	        ]
  1729	      },
  1730	      "properties": {
  1731	        "feature_id": 78,
  1732	        "name": "Liesbeek River",
  1733	        "waterway_type": "canal"
  1734	      }
  1735	    },
  1736	    {
  1737	      "type": "Feature",
  1738	      "geometry": {
  1739	        "type": "LineString",
  1740	        "coordinates": [
  1741	          [
  1742	            18.55677,
  1743	            -33.900116
  1744	          ],
  1745	          [
  1746	            18.507975,
  1747	            -33.965121
  1748	          ],
  1749	          [
  1750	            18.449284,
  1751	            -34.040895
  1752	          ]
  1753	        ]
  1754	      },
  1755	      "properties": {
  1756	        "feature_id": 79,
  1757	        "name": "Black River Stream",
  1758	        "waterway_type": "ditch"
  1759	      }
  1760	    },
  1761	    {
  1762	      "type": "Feature",
  1763	      "geometry": {
  1764	        "type": "LineString",
  1765	        "coordinates": [
  1766	          [
  1767	            18.366919,
  1768	            -34.03849
  1769	          ],
  1770	          [
  1771	            18.35233,
  1772	            -34.081651
  1773	          ],
  1774	          [
  1775	            18.353039,
  1776	            -34.099811
  1777	          ]
  1778	        ]
  1779	      },
  1780	      "properties": {
  1781	        "feature_id": 80,
  1782	        "name": "Salt Stream",
  1783	        "waterway_type": "stream"
  1784	      }
  1785	    },
  1786	    {
  1787	      "type": "Feature",
  1788	      "geometry": {
  1789	        "type": "LineString",
  1790	        "coordinates": [
  1791	          [
  1792	            18.411707,
  1793	            -34.099932
  1794	          ],
  1795	          [
  1796	            18.452979,
  1797	            -34.083723
  1798	          ],
  1799	          [
  1800	            18.512036,
  1801	            -34.028481
  1802	          ]
  1803	        ]
  1804	      },
  1805	      "properties": {
  1806	        "feature_id": 81,
  1807	        "name": "Diep River",
  1808	        "waterway_type": "river"
  1809	      }
  1810	    },
  1811	    {
  1812	      "type": "Feature",
  1813	      "geometry": {
  1814	        "type": "LineString",
  1815	        "coordinates": [
  1816	          [
  1817	            18.624656,
  1818	            -34.031022
  1819	          ],
  1820	          [
  1821	            18.660529,
  1822	            -33.969536
  1823	          ],
  1824	          [
  1825	            18.690275,
  1826	            -33.88892
  1827	          ]
  1828	        ]
  1829	      },
  1830	      "properties": {
  1831	        "feature_id": 82,
  1832	        "name": "Eerste Stream",
  1833	        "waterway_type": "drain"
  1834	      }
  1835	    },
  1836	    {
  1837	      "type": "Feature",
  1838	      "geometry": {
  1839	        "type": "LineString",
  1840	        "coordinates": [
  1841	          [
  1842	            18.689685,
  1843	            -33.891672
  1844	          ],
  1845	          [
  1846	            18.666913,
  1847	            -33.838365
  1848	          ],
  1849	          [
  1850	            18.623197,
  1851	            -33.802461
  1852	          ]
  1853	        ]
  1854	      },
  1855	      "properties": {
  1856	        "feature_id": 83,
  1857	        "name": "Lourens Stream",
  1858	        "waterway_type": "canal"
  1859	      }
  1860	    },
  1861	    {
  1862	      "type": "Feature",
  1863	      "geometry": {
  1864	        "type": "LineString",
  1865	        "coordinates": [
  1866	          [
  1867	            18.510272,
  1868	            -33.803032
  1869	          ],
  1870	          [
  1871	            18.462655,
  1872	            -33.804249
  1873	          ],
  1874	          [
  1875	            18.410365,
  1876	            -33.844273
  1877	          ]
  1878	        ]
  1879	      },
  1880	      "properties": {
  1881	        "feature_id": 84,
  1882	        "name": "Hout Bay River",
  1883	        "waterway_type": "ditch"
  1884	      }
  1885	    },
  1886	    {
  1887	      "type": "Feature",
  1888	      "geometry": {
  1889	        "type": "LineString",
  1890	        "coordinates": [
  1891	          [
  1892	            18.35272,
  1893	            -33.842166
  1894	          ],
  1895	          [
  1896	            18.350936,
  1897	            -33.896849
  1898	          ],
  1899	          [
  1900	            18.367686,
  1901	            -33.978004
  1902	          ]
  1903	        ]
  1904	      },
  1905	      "properties": {
  1906	        "feature_id": 85,
  1907	        "name": "Disa Stream",
  1908	        "waterway_type": "stream"
  1909	      }
  1910	    },
  1911	    {
  1912	      "type": "Feature",
  1913	      "geometry": {
  1914	        "type": "LineString",
  1915	        "coordinates": [
  1916	          [
  1917	            18.450883,
  1918	            -33.975051
  1919	          ],
  1920	          [
  1921	            18.49758,
  1922	            -34.035659
  1923	          ],
  1924	          [
  1925	            18.558508,
  1926	            -34.087388
  1927	          ]
  1928	        ]
  1929	      },
  1930	      "properties": {
  1931	        "feature_id": 86,
  1932	        "name": "Sand Stream",
  1933	        "waterway_type": "river"
  1934	      }
  1935	    },
  1936	    {
  1937	      "type": "Feature",
  1938	      "geometry": {
  1939	        "type": "LineString",
  1940	        "coordinates": [
  1941	          [
  1942	            18.659058,
  1943	            -34.086157
  1944	          ],
  1945	          [
  1946	            18.684924,
  1947	            -34.099996
  1948	          ],
  1949	          [
  1950	            18.699594,
  1951	            -34.077327
  1952	          ]
  1953	        ]
  1954	      },
  1955	      "properties": {
  1956	        "feature_id": 87,
  1957	        "name": "Soet River",
  1958	        "waterway_type": "drain"
  1959	      }
  1960	    },
  1961	    {
  1962	      "type": "Feature",
  1963	      "geometry": {
  1964	        "type": "LineString",
  1965	        "coordinates": [
  1966	          [
  1967	            18.668251,
  1968	            -34.078887
  1969	          ],
  1970	          [
  1971	            18.634893,
  1972	            -34.033927
  1973	          ],
  1974	          [
  1975	            18.58153,
  1976	            -33.956568
  1977	          ]
  1978	        ]
  1979	      },
  1980	      "properties": {
  1981	        "feature_id": 88,
  1982	        "name": "Klein Liesbeek Stream",
  1983	        "waterway_type": "canal"
  1984	      }
  1985	    },
  1986	    {
  1987	      "type": "Feature",
  1988	      "geometry": {
  1989	        "type": "LineString",
  1990	        "coordinates": [
  1991	          [
  1992	            18.464817,
  1993	            -33.959563
  1994	          ],
  1995	          [
  1996	            18.421748,
  1997	            -33.894891
  1998	          ],
  1999	          [
  2000	            18.379559,
<system-reminder>Showed lines 1-2000 of 2287. Re-call Read with offset=2001 to continue, or raise limit.</system-reminder>
0:07
Let me see the rest of the file to understand all features.
0:07
Read /work/capetown_waterways.geojson
  2001	            -33.830098
  2002	          ]
  2003	        ]
  2004	      },
  2005	      "properties": {
  2006	        "feature_id": 89,
  2007	        "name": "Kuils Stream",
  2008	        "waterway_type": "ditch"
  2009	      }
  2010	    },
  2011	    {
  2012	      "type": "Feature",
  2013	      "geometry": {
  2014	        "type": "LineString",
  2015	        "coordinates": [
  2016	          [
  2017	            18.350713,
  2018	            -33.831925
  2019	          ],
  2020	          [
  2021	            18.36186,
  2022	            -33.803767
  2023	          ],
  2024	          [
  2025	            18.393466,
  2026	            -33.807872
  2027	          ]
  2028	        ]
  2029	      },
  2030	      "properties": {
  2031	        "feature_id": 90,
  2032	        "name": "Modder River",
  2033	        "waterway_type": "stream"
  2034	      }
  2035	    },
  2036	    {
  2037	      "type": "Feature",
  2038	      "geometry": {
  2039	        "type": "LineString",
  2040	        "coordinates": [
  2041	          [
  2042	            18.495303,
  2043	            -33.806941
  2044	          ],
  2045	          [
  2046	            18.544121,
  2047	            -33.839778
  2048	          ],
  2049	          [
  2050	            18.602609,
  2051	            -33.909212
  2052	          ]
  2053	        ]
  2054	      },
  2055	      "properties": {
  2056	        "feature_id": 91,
  2057	        "name": "Princess Vlei Stream",
  2058	        "waterway_type": "river"
  2059	      }
  2060	    },
  2061	    {
  2062	      "type": "Feature",
  2063	      "geometry": {
  2064	        "type": "LineString",
  2065	        "coordinates": [
  2066	          [
  2067	            18.683973,
  2068	            -33.906333
  2069	          ],
  2070	          [
  2071	            18.698,
  2072	            -33.971616
  2073	          ],
  2074	          [
  2075	            18.696557,
  2076	            -34.046013
  2077	          ]
  2078	        ]
  2079	      },
  2080	      "properties": {
  2081	        "feature_id": 92,
  2082	        "name": "Riet Stream",
  2083	        "waterway_type": "drain"
  2084	      }
  2085	    },
  2086	    {
  2087	      "type": "Feature",
  2088	      "geometry": {
  2089	        "type": "LineString",
  2090	        "coordinates": [
  2091	          [
  2092	            18.636679,
  2093	            -34.043689
  2094	          ],
  2095	          [
  2096	            18.595096,
  2097	            -34.084661
  2098	          ],
  2099	          [
  2100	            18.535863,
  2101	            -34.09934
  2102	          ]
  2103	        ]
  2104	      },
  2105	      "properties": {
  2106	        "feature_id": 93,
  2107	        "name": "Schaapen River",
  2108	        "waterway_type": "canal"
  2109	      }
  2110	    },
  2111	    {
  2112	      "type": "Feature",
  2113	      "geometry": {
  2114	        "type": "LineString",
  2115	        "coordinates": [
  2116	          [
  2117	            18.42362,
  2118	            -34.099592
  2119	          ],
  2120	          [
  2121	            18.388148,
  2122	            -34.080632
  2123	          ],
  2124	          [
  2125	            18.359045,
  2126	            -34.022831
  2127	          ]
  2128	        ]
  2129	      },
  2130	      "properties": {
  2131	        "feature_id": 94,
  2132	        "name": "Steenbras Stream",
  2133	        "waterway_type": "ditch"
  2134	      }
  2135	    },
  2136	    {
  2137	      "type": "Feature",
  2138	      "geometry": {
  2139	        "type": "LineString",
  2140	        "coordinates": [
  2141	          [
  2142	            18.361039,
  2143	            -34.025439
  2144	          ],
  2145	          [
  2146	            18.38433,
  2147	            -33.963031
  2148	          ],
  2149	          [
  2150	            18.428554,
  2151	            -33.883003
  2152	          ]
  2153	        ]
  2154	      },
  2155	      "properties": {
  2156	        "feature_id": 95,
  2157	        "name": "Sir Lowry Stream",
  2158	        "waterway_type": "stream"
  2159	      }
  2160	    },
  2161	    {
  2162	      "type": "Feature",
  2163	      "geometry": {
  2164	        "type": "LineString",
  2165	        "coordinates": [
  2166	          [
  2167	            18.541825,
  2168	            -33.8857
  2169	          ],
  2170	          [
  2171	            18.589308,
  2172	            -33.834101
  2173	          ],
  2174	          [
  2175	            18.641218,
  2176	            -33.801421
  2177	          ]
  2178	        ]
  2179	      },
  2180	      "properties": {
  2181	        "feature_id": 96,
  2182	        "name": "Constantia River",
  2183	        "waterway_type": "river"
  2184	      }
  2185	    },
  2186	    {
  2187	      "type": "Feature",
  2188	      "geometry": {
  2189	        "type": "LineString",
  2190	        "coordinates": [
  2191	          [
  2192	            18.697637,
  2193	            -33.801863
  2194	          ],
  2195	          [
  2196	            18.698834,
  2197	            -33.805934
  2198	          ],
  2199	          [
  2200	            18.68138,
  2201	            -33.849015
  2202	          ]
  2203	        ]
  2204	      },
  2205	      "properties": {
  2206	        "feature_id": 97,
  2207	        "name": "Klipfontein Stream",
  2208	        "waterway_type": "drain"
  2209	      }
  2210	    },
  2211	    {
  2212	      "type": "Feature",
  2213	      "geometry": {
  2214	        "type": "LineString",
  2215	        "coordinates": [
  2216	          [
  2217	            18.597204,
  2218	            -33.846817
  2219	          ],
  2220	          [
  2221	            18.550338,
  2222	            -33.903018
  2223	          ],
  2224	          [
  2225	            18.489427,
  2226	            -33.984405
  2227	          ]
  2228	        ]
  2229	      },
  2230	      "properties": {
  2231	        "feature_id": 98,
  2232	        "name": "Plumstead Stream",
  2233	        "waterway_type": "canal"
  2234	      }
  2235	    },
  2236	    {
  2237	      "type": "Feature",
  2238	      "geometry": {
  2239	        "type": "LineString",
  2240	        "coordinates": [
  2241	          [
  2242	            18.389598,
  2243	            -33.981478
  2244	          ],
  2245	          [
  2246	            18.364233,
  2247	            -34.040948
  2248	          ],
  2249	          [
  2250	            18.350275,
  2251	            -34.089883
  2252	          ]
  2253	        ]
  2254	      },
  2255	      "properties": {
  2256	        "feature_id": 99,
  2257	        "name": "Camps Bay River",
  2258	        "waterway_type": "ditch"
  2259	      }
  2260	    },
  2261	    {
  2262	      "type": "Feature",
  2263	      "geometry": {
  2264	        "type": "LineString",
  2265	        "coordinates": [
  2266	          [
  2267	            18.382969,
  2268	            -34.088772
  2269	          ],
  2270	          [
  2271	            18.416754,
  2272	            -34.099808
  2273	          ],
  2274	          [
  2275	            18.470467,
  2276	            -34.073747
  2277	          ]
  2278	        ]
  2279	      },
  2280	      "properties": {
  2281	        "feature_id": 100,
  2282	        "name": "Bokramspruit Stream",
  2283	        "waterway_type": "stream"
  2284	      }
  2285	    }
  2286	  ]
  2287	}
0:23
Let me analyze the data to understand what needs to be dropped.

The requirements are:
1. A feature needs both a **drawable geometry** and a **proper type** to be useful.
2. "Drawable geometry" - needs to be a LineString with at least some coordinates (not null geometry, not empty coordinate array)
3. "Proper type" - waterway_type cannot be null

Let me go through each feature:

Features with geometry = null:
- feature_id 1: geometry null, waterway_type "river" - DROP (no geometry)
- feature_id 2: geometry null, waterway_type "drain" - DROP (no geometry)
- feature_id 3: geometry null, waterway_type "canal" - DROP (no geometry)
- feature_id 4: geometry null, waterway_type "ditch" - DROP (no geometry)
- feature_id 5: geometry null, waterway_type "stream" - DROP (no geometry)
- feature_id 11: geometry null, waterway_type null - DROP (no geometry, no type)
- feature_id 12: geometry null, waterway_type null - DROP
- feature_id 13: geometry null, waterway_type null - DROP
- feature_id 14: geometry null, waterway_type null - DROP
- feature_id 15: geometry null, waterway_type null - DROP

Features with LineString but empty coordinates []:
- feature_id 6: LineString [], waterway_type "river" - DROP (empty coordinates - no drawable geometry)
- feature_id 7: LineString [], waterway_type "drain" - DROP
- feature_id 8: LineString [], waterway_type "canal" - DROP
- feature_id 9: LineString [], waterway_type "ditch" - DROP
- feature_id 10: LineString [], waterway_type "stream" - DROP

Features with valid LineString geometry but null waterway_type:
- feature_id 16: valid LineString, waterway_type null - DROP (no proper type)
- feature_id 17: valid LineString, waterway_type null - DROP
- feature_id 18: valid LineString, waterway_type null - DROP
- feature_id 19: valid LineString, waterway_type null - DROP
- feature_id 20: valid LineString, waterway_type null - DROP

Features with valid LineString and valid waterway_type:
- feature_id 21: valid LineString, "river" - KEEP (name is null, but that's fine)
- feature_id 22: valid LineString, "drain" - KEEP
- feature_id 23: valid LineString, "canal" - KEEP
- feature_id 24: valid LineString, "ditch" - KEEP
- feature_id 25: valid LineString, "stream" - KEEP
- feature_id 26: valid LineString, "river" - KEEP
... and all the rest from 26 to 100 that have valid LineString and non-null waterway_type.

Let me count:
- Features 1-5: dropped (5)
- Features 6-10: dropped (5)
- Features 11-15: dropped (5)
- Features 16-20: dropped (5)
Total dropped: 20

Features kept: 21-100 = 80 features? Wait, let me check.

Actually features 21-25 have valid geometry and valid waterway_type, so they're kept.
Features 26-100 all have valid LineString geometry and non-null waterway_type, so they're kept.

Total features: 100
Dropped: 20
Kept: 80

Let me write a Python script to do this properly.
0:23
0:23
Write /work/solve.py
content · 43 lines · py
import json

with open("/work/capetown_waterways.geojson", "r") as f:
    data = json.load(f)

original_count = len(data["features"])
kept = []

for feat in data["features"]:
    geom = feat.get("geometry")
    props = feat.get("properties", {})
    wtype = props.get("waterway_type")

    # Check drawable geometry: must be a LineString with at least one coordinate pair
    has_geometry = (
        geom is not None
        and geom.get("type") == "LineString"
        and isinstance(geom.get("coordinates"), list)
        and len(geom["coordinates"]) > 0
    )

    # Check proper type: waterway_type must be a non-null string
    has_type = isinstance(wtype, str) and wtype.strip() != ""

    if has_geometry and has_type:
        kept.append(feat)

dropped_count = original_count - len(kept)

output = {
    "type": "FeatureCollection",
    "name": data.get("name", "capetown_waterways"),
    "crs": data.get("crs"),
    "dropped_count": dropped_count,
    "features": kept,
}

with open("/work/waterways_clean.geojson", "w") as f:
    json.dump(output, f, indent=2)

print(f"Original features: {original_count}")
print(f"Kept features: {len(kept)}")
print(f"Dropped features: {dropped_count}")
Wrote /work/solve.py (1199 chars).
0:31
Let me run the script.
0:31
Bash cd /work && python solve.py
Original features: 100
Kept features: 80
Dropped features: 20
0:35
Let me verify the output to make sure it looks correct. I should check the structure, the dropped_count at top level, that only LineString features remain, and that all original columns are preserved.
0:35
0:35
Bash cd /work && python -c "
cd /work && python -c "
import json
with open('waterways_clean.geojson') as f:
    data = json.load(f)

print('Top-level keys:', list(data.keys()))
print('dropped_count:', data.get('dropped_count'))
print('Feature count:', len(data['features']))

# Check all features are LineString with non-empty coords
for feat in data['features']:
    g = feat['geometry']
    assert g['type'] == 'LineString', 'Bad type'
    assert len(g['coordinates']) > 0, 'Empty coords'
    props = feat['properties']
    assert 'feature_id' in props
    assert 'name' in props
    assert 'waterway_type' in props
    assert props['waterway_type'] is not None and props['waterway_type'] != ''

print('All checks passed!')

# Show feature_ids kept
ids = [f['properties']['feature_id'] for f in data['features']]
print('Kept feature_ids:', sorted(ids))
"
Top-level keys: ['type', 'name', 'crs', 'dropped_count', 'features']
dropped_count: 20
Feature count: 80
All checks passed!
Kept feature_ids: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
0:43
Let me verify which features were dropped:

- Features 1-5: geometry is null (no drawable geometry)
- Features 6-10: geometry is LineString but coordinates is empty array (no drawable points)
- Features 11-15: geometry is null AND waterway_type is null
- Features 16-20: have proper LineString geometry but waterway_type is null

That's:
- 1-5: 5 features (null geometry, various types)
- 6-10: 5 features (empty LineString, various types)
- 11-15: 5 features (null geometry, null type)
- 16-20: 5 features (valid geometry but null type)

Total dropped: 20. That matches.

Kept: features 21-100 = 80 features. All are LineString with non-empty coordinates and a non-null waterway_type.

The output looks correct!
0:43