DS =\ -dsco NAME="Sampaloc, Manila Address grids" \ -dsco DESCRIPTION="See $(subst $(HOME)/,https://www.,$(PWD))" ## Author: Dan Jacobson https://www.jidanni.org/ ## Copyright: https://www.gnu.org/licenses/gpl.html ## Created: 2024-11-17T23:34:24+0000 ## Last-Updated: 2025-02-14T19:44:55+0000 ## Update #: 177 P=sampaloc $P.vik: # Ground control points: G:=$G -gcp 1200 900 14.606168 120.988920 # Tolentino / España G:=$G -gcp 1600 900 14.610257 120.993414 # Dos Castillas / España G:=$G -gcp 1800 400 14.606852 121.000742 # Cristobal / Honradez G:=$G -gcp 1800 1500 14.618646 120.989466 # Cristobal / Simoun G:=$G -gcp 1900 900 14.613394 120.996956 # Quintos / España $P.optfile:; echo $G|xargs --max-args 5|perl -anwle 'print qq(@F[0,1,2,4,3])' > $@ # Drape contours over the wedge. Our own version of "gdal_create -outsize 2 2". # (Makes four points per line, we actually only want the middle two, but will get clipped anyway): %.csv:%.xyz; gdal_contour -i 100 -q -a Name $< $@ -lco GEOMETRY=AS_WKT clean:; rm *.xyz *.kml *.csv *.optfile $P.%.xyz:; N=1700 E=2200 S=400 W=1200; perl -wle \ "for([$$W,$$N],[$$E,$$N],[$$W,$$S],[$$E,$$S]){print qq(@\$$_ @\$$_[$*])}" > $@ $P.%.kml:$P.%.csv $P.bdy.csv $P.optfile ogr2ogr -f LIBKML $@ $< --optfile $P.optfile -clipdst $P.bdy.csv -sql \ 'SELECT Name FROM "$(basename $<)"' %.kmz: %.0.kml %.1.kml $P.bdy.kml; ogrmerge -f LIBKML -overwrite_ds -o $@ $^ $(DS) .INTERMEDIATE: %.kml $P.optfile $P.bdy.csv $P.bdy_raw.csv .PRECIOUS: %.kmz # Study area clipping boundary: N= 14.605252 120.987823 # España / Nicanor Reyes C:=$C $N C:=$C 14.603020 120.996031 # Tuazon / Jhocson # Southmost point C:=$C 14.604555 120.999335 # Tuazon halfway C:=$C 14.605202 121.000277 # Tuazon / Fuente C:=$C 14.606573 121.002455 # Tuazon / Expy. # Eastmost point C:=$C 14.610184 121.000127 # Sobreidad / Quintos C:=$C 14.619548 120.997758 # Blumentritt straight joins curve C:=$C 14.625131 120.990573 # Blumentritt / Retiro # Northmost point C:=$C 14.623814 120.989079 # Dimasalang / Retiro C:=$C 14.617181 120.988885 # Dimasalang / Fuente C:=$C 14.616651 120.988370 # Don Quijote / Aragon C:=$C 14.616641 120.987330 # Dos Castillas / Aragon C:=$C 14.616111 120.986686 # Alfonso Mendoza / Lacson C:=$C 14.607250 120.985916 # Alfonso Mendoza / P. Paredes # Westmost point C:=$C $N $P.bdy_raw.csv:; echo $C|xargs --max-args 2 > $@ %.bdy.csv:%.bdy_raw.csv #I'm not sure this is the best way, but it works: #"." for viking, to keep screen clearer ogr2ogr $@ $< -lco GEOMETRY=AS_WKT -dialect SQLite -sql \ 'SELECT "." AS Name, $(\ )MakePolygon(MakeLine(MakePoint(field_2+0, field_1+0))) AS WKT FROM "$(basename $<)"' n:$P.bdy.kml; cat $< $P.bdy.kml:$P.bdy.csv ogr2ogr -f LIBKML $@ $< -sql 'SELECT Name FROM "$(basename $<)"' v=viking %.vik:%.kmz cd /tmp && nohup sh -c \ "if pidof -q $v; then killall --wait --signal SIGHUP $v; fi; \ $v -e $(PWD)/$< & sleep 11"