### Makefile --- Utilities for making entire county grids ## Author: Dan Jacobson https://www.jidanni.org/ ## Copyright: https://www.gnu.org/licenses/gpl.html ## Created: 2024-05-05T21:40:20+0000 ## Last-Updated: 2024-05-24T00:33:10+0000 ## Update #: 352 ## nnn: psps.vik: ## Many Illinois counties have a road name grid that starts in the ## southwest corner of the county. ## So let's make templates to make a strip of road names grid ticks, one per mile, ## along the south and west edges of a county! ## Sure we could get fancy with just using a bounding box of a ## county... But still let's just instead manually as for a strip of ## sections along the south and east borders, from the BLM. We are ## going to use their centers, so only a one mile strip is all we need. ## Encountering correction lines: no problem. ## For now we will just build up individual counties. # https://www.mapofus.org/_maps/dot/il/ford.pdf # https://www.mapofus.org/_maps/dot/il/champaign.pdf U = ../../../utilities include $U/m1.makefile $U/m2.makefile export PERLLIB = $U export PATH := $U:$(PATH) L=$(HOME)/Downloads m:$L/IL_PLSS_Sections ogrinfo -so $< IL_PLSS_Section_Ln #just scattered lines n:$L/BLM_ES_PLSSIntersected_-8846578874489947064.gpkg #no A B etc. found ogrinfo -sql \ 'SELECT FRSTDIVID FROM egdbesedt_ILMESDO_PLSSIntersected' \ $< | grep IL | grep -v -P 'IL0.0..0.0..0.0SN..0'|wc -l mxx:$L/BLM_ES_PLSSIntersected_-8846578874489947064.gpkg ogrinfo -q -ro $< -where 'SECDIVID = "IL030200N0040E0SN190"' egdbesedt_ILMESDO_PLSSIntersected|\ grep -v null jmxx:$L/BLM_ES_PLSSIntersected_-8846578874489947064.gpkg #ogrinfo -so $< egdbesedt_ILMESDO_PLSSIntersected #-where 'SECDIVID = "IL030200N0040E0SN190"' # Maybe the each point in the file of points can be found exactly four # times in the file of section rings? D=BLM_ES_PLSSPoint_-3827139843074808428 P=$L/$D.geojson pp:$P # ogrinfo -so $< $D ogrinfo -sql 'SELECT geom FROM "$D"' $< |head -n 333 n.gpkg:$P ogr2ogr $@ $< ff.vik: S=-spat -88 39.8 -87.3 40.3 ff.csv:n.gpkg #Makefile ogrinfo $S -sql 'SELECT geom FROM "$D"' $< |\ perl -nwle '/POINT \((.*) (.*)\)/&& print "$$1,$$2,$$."' $C xx:$L/BLM_ES_PLSSIntersected_-8846578874489947064.gpkg ogrinfo $S -q $< -sql \ 'SELECT FRSTDIVID,SHAPE FROM egdbesedt_ILMESDO_PLSSIntersected'|\ perl -nwe '/MULTIPOLYGON \Q(((\E([^()]+)\Q)))\E/||next;@a=split /,/, $$1;$(\ )pop @a; $$c{$$_}++ for @a;$(\ )END{for(reverse sort{ $$c{$$a}<=>$$c{$$b}} keys %c){print "$$c{$$_}, $$_\n";}}' q.geojson:$L/BLM_ES_PLSSFirstDivision_-6850288442602788879.gpkg ogr2ogr $S $@ $< psps.csv:q.geojson $U/PLSS_corners_4.pm Makefile debug=1 perl -MPLSS_corners_4 -we 'PLSS_corners_4::sniff4p()' $< $C d:q.geojson $U/PLSS_corners_4.pm Makefile perl -d -MPLSS_corners_4 -we 'PLSS_corners_4::sniff4p()' $< psps.vik: w=IN020200N0100W0SN220# should be 30!! # Dear BLM, and Randy Majors, # The PLSS section with ID # IN020200N0100W0SN220 # should in fact be # IN020200N0100W0SN300 # Indeed, it is the east part of # IL020200N0100W0SN300 # Also checking property descriptions there all reveal # ..."30-20-10", not "22-20-10". wrong_perhaps.json: echo $w | fetch_blm_sections $C oo:wp.kmz # ogrinfo -q -sql 'SELECT "_ogr_geometry_" FROM wp' $< # ogrinfo -q -sql 'SELECT name, geometry FROM wp' -dialect SQLITE $< ogrinfo -q -sql 'SELECT NAME FROM wp' $< # ogrinfo -q -sql 'SELECT * FROM wp WHERE OGR_GEOMETRY LIKE "%POINT%"' $< # ogrinfo -q -sql 'SELECT OGR_GEOM_WKT FROM wp' $< wp.csv:wrong_perhaps.json filter=$w OnePLSSSec $< $C wp.vik: ring:wp.csv ogrinfo $< -dialect SQLite -sql "SELECT way_id, MakeLine(MakePoint(CAST(x AS float),CAST(y AS float))) FROM test GROUP BY way_id" will return : #nnn: ../vermilion/vermilion_county/vermilion_co_il.kmz* r=dan1 F=ESRIJSON F=GeoJSONSeq nnn: ssh $r ogrinfo -ro -al $F$():$L/lon_lat_sn_online.json xnnn: lon_lat_sn_online.json perl -nwle 'print for /([a-z]\w+)/g;' $<|sort -u|xargs|fold -s # perl -nwle '$$m{$$_}++ for /([a-z]+)/ig; END{printf "%4d %s\n", $$m{$$_}, $$_ for sort keys %m}' $< # ogrinfo -q -ro -al GeoJSONSeq$():$< #lon_lat_sn_online -al soo: ogrinfo --formats|perl -awnle 'print $$F[0] if /json/i;'|xargs -I {} --verbose -n 1 \ ogrinfo -ro {}:$< lon_lat_sn_online -al mnnn: some.kmz #some.vik: # ogrinfo -q -geom=NO -fields=NO $< vermilion_co_il # ogrinfo -dialect OGRSQL -sql 'SELECT * EXCLUDE (Name) FROM vermilion_co_il' $< # ogrinfo -dialect OGRSQL -sql '* FROM vermilion_co_il EXCLUDE (Name)' $< # ogrinfo -dialect OGRSQL -q -geom=NO -sql 'SELECT Name FROM vermilion_co_il WHERE Name REGEXP 4' $< # ogrinfo -dialect INdirect_SQLite -q -geom=NO -sql 'SELECT geometry FROM vermilion_co_il' $< # https://gdal.org/user/sql_sqlite_dialect.html#spatialite-sql-functions # ogrinfo -dialect SQLite -q -sql 'SELECT geometry FROM vermilion_co_il' $< # ogrinfo -dialect OGRSQL -q -sql 'SELECT Name FROM vermilion_co_il' $< # ogrinfo -dialect SQLite -q -sql 'SELECT * FROM vermilion_co_il' $< # ogrinfo -dialect Bogogo -q -sql 'SELECT Name FROM vermilion_co_il' $< | wc -l ogr2ogr b.csv -dialect SQLite -q -sql 'SELECT ST_Centroid(GEOMETRY) FROM vermilion_co_il' $< ogr2ogr a.csv -dialect SQLite -q -sql 'SELECT ST_PointOnSurface(GEOMETRY) FROM vermilion_co_il' $< ms: some.kmz { ogrinfo -dialect SQLite -q -sql 'SELECT ST_Centroid(GEOMETRY) FROM vermilion_co_il' $<;\ ogrinfo -dialect SQLite -q -sql 'SELECT ST_PointOnSurface(GEOMETRY) FROM vermilion_co_il' $<;}|\ perl -wlne 'next unless /-87/; tr/@F=split /,/; print join ",", @F;'