DS =\ -dsco NAME="Caloocan, Philippines street numbers: my revision" \ -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-02-13T12:08:04+0000 ## Last-Updated: 2025-02-14T02:58:39+0000 ## Update #: 45 ## We fixed their grid! P=caloocan_xy2 $P.vik: # Ground control points, and clockwise boundary. G:=$G 2 11 14.652890 120.986047 G:=$G 2 8 14.648681 120.985908 G:=$G W^ 0.9 14.637574 120.982845 G:=$G W^ 1 14.639090 120.979739 G:=$G W^ 2 14.640496 120.978290 G:=$G W^ 4 14.643366 120.977325 G:=$G W^ 10 14.651785 120.976381 G:=$G W^ 11 14.653061 120.981605 G:=$G W^ 12 14.654338 120.985049 G:=$G Ev 12 14.654068 120.995574 G:=$G Ev 11 14.652605 120.994952 G:=$G Ev 10 14.651193 120.994899 G:=$G 9 9 14.649927 120.991004 G:=$G Ev 8 14.648473 120.992184 G:=$G 10 7 14.647103 120.991605 G:=$G Ev 6 14.645650 120.991476 G:=$G Ev 5 14.644186 120.990056 G:=$G Ev 4 14.643086 120.986251 G:=$G Ev 3 14.641705 120.985672 G:=$G Ev 2 14.640361 120.984899 G:=$G Ev 1 14.638996 120.983361 G:=$G Ev 0 14.637574 120.982845 G:=$G 11 12 14.654132 120.992567 #If we want to see our GCPs: $P.kml:$P.csv; ogr2ogr -f LIBKML $@ $< -oo X_POSSIBLE_NAMES=field_1 \ -oo Y_POSSIBLE_NAMES=field_2 -sql 'SELECT field_3 AS Name FROM "$(basename $<)"' %.csv:%.optfile; perl -anwle 'printf "%s,%s,%s/%s\n", @F[3,4,1,2];' $< | sort -n -o $@ R=echo $G|xargs --max-args 4|perl -anwle $P.optfile:Makefile; $R 'next if /[A-Z]/; $$F[0]+=70; print qq(-gcp @F[0,1,3,2])' > $@ $P.boundary_raw.csv: $R 'next unless /[A-Z]/; push @N, [@F[3,2]]; END{for (-1..$$#N){print "@{$$N[$$_]}";}}' > $@ %.csv:%.xyz; gdal_contour -i 1 -q -a Name $< $@ -lco GEOMETRY=AS_WKT clean:; rm *.xyz *.kml *.csv *.optfile $P.%.xyz:; N=15 E=90 S=0 W=50; perl -wle \ "for([$$W,$$N],[$$E,$$N],[$$W,$$S],[$$E,$$S]){print qq(@\$$_ @\$$_[$*])}" > $@ $P.%.kml:$P.%.csv $P.boundary.csv $P.optfile ogr2ogr -f LIBKML $@ $< --optfile $P.optfile -clipdst $P.boundary.csv -sql \ 'SELECT Name FROM "$(basename $<)"' %.kmz: %.0.kml %.1.kml $P.boundary.kml #$P.kml ogrmerge -f LIBKML -overwrite_ds -o $@ $^ $(DS) .INTERMEDIATE: $P.kml $P.optfile $P.boundary.csv $P.boundary_raw.csv $P.boundary.kml .PRECIOUS: %.kmz %.boundary.csv:%.boundary_raw.csv #"." is tiny in viking ogr2ogr $@ $< -lco GEOMETRY=AS_WKT -dialect SQLite -sql \ 'SELECT "." as Name, $(\ )MakePolygon(MakeLine(MakePoint(field_1+0, field_2+0))) AS WKT FROM "$(basename $<)"' $P.boundary.kml:$P.boundary.csv; ogr2ogr -f LIBKML $@ $< -sql 'SELECT Name FROM "$(basename $<)"' v=viking %.vik:%.kmz cd /tmp && nohup sh -c \ "if pidof -q $v; then killall --signal SIGHUP $v; fi; \ $v `: --zoom 17` -e $(PWD)/$< & sleep 11"