D=-dsco NAME="Some Makati Philippines address groups" \ -dsco DESCRIPTION="See $(subst $(HOME)/,https://www.,$(PWD))" ## Author: Dan Jacobson https://www.jidanni.org/ ## Copyright: https://www.gnu.org/licenses/gpl.html ## Created: 2025-07-13T04:56:08+0000 ## Last-Updated: 2025-07-14T02:44:59+0000 ## Update #: 106 ## Various probes to figure out any Makati addressing system H=100 P=58 #random spot check d=~/Downloads/d/data/makati.csv N=grp v: points.kml; viking $^; sleep 3333 overlaps.csv:$d ogr2ogr -q -lco STRING_QUOTING=IF_NEEDED $@ $< \ -lco GEOMETRY=AS_WKT -dialect SQLite -sql \ 'SELECT CONCAT(MIN("addr:housenumber"),"..",$(\ )MAX("addr:housenumber")," ","addr:street") FROM $(\ ) $(notdir $(basename $<)) GROUP BY "addr:street" $(\ ) HAVING MAX("addr:housenumber") - MIN("addr:housenumber") > 10 $(\ ) ORDER BY MIN("addr:housenumber")' nosuf.csv:$d #some data doesn't have suffixes. So let's make it all that way: perl -pwle 's/\s(Street|Avenue)//;' $< > $@ points.csv:uniq.csv ogr2ogr -q -lco STRING_QUOTING=IF_NEEDED $@ $< \ -lco GEOMETRY=AS_WKT -dialect SQLite -sql \ "SELECT \"addr:housenumber\" / $H AS $N, \"addr:housenumber\" AS Name, $(\ )MakePoint(\"@lon\"+0,\"@lat\"+0) AS WKT FROM $(basename $<)" F='SELECT ST_ConcaveHull(ST_Collect(GEOMETRY)), $N AS Name \ FROM $(basename $<) WHERE $N+0 = $P GROUP BY $N ORDER BY $N+0' groups.kml:points.csv #One attempt at grouping to find logic of their addressing system ogr2ogr -q $@ $< -dialect SQLite -sql $F -of LIBKML lines.csv:points.csv #Another such attempt ogr2ogr -q -lco STRING_QUOTING=IF_NEEDED $@ $< \ -lco GEOMETRY=AS_WKT -dialect SQLite -sql \ "SELECT MakeLine(GEOMETRY) AS WKT, '.' AS NAME FROM $(basename $<) WHERE $N+0 = $P" %.kml:%.csv; ogr2ogr -f LIBKML $@ $< -sql 'SELECT Name FROM "$(basename $<)"' M={{geocodeArea:Makati,Manila}}->.q #We will only check four digit house numbers: oQ=[out:csv('addr:housenumber',::lat,::lon)];$M;\ node["addr:housenumber"~"^[0-9]{4}$$"](area.q);out body; Q=[out:csv('addr:housenumber','addr:street',::lat,::lon)];$M;\ node["addr:housenumber"~"^[0-9]{4}$$"](area.q);out body; copy_string_to_paste_into_overpass_turbo:; make -s b|wl-copy && sleep 22 b:; $(info $Q) find_multis:$d perl -MData::Dumper -anwle \ 'push @{$$l{$$F[0]}},$$_; $(\ )END{for(keys %l){print Dumper @{$$l{$$_}} if $$#{$$l{$$_}}>1;}}' $< uniq.csv:$d #and to make things simpler, exclude them perl -anwle \ 'if(/addr/){print; next;}push @{$$l{$$F[0]}},$$_; $(\ )END{for(sort keys %l){print $$l{$$_}->[0] unless @{$$l{$$_}}>1;}}' $< > $@ clean:; rm *.csv *.kml