{"id":4015,"date":"2025-10-21T08:48:22","date_gmt":"2025-10-21T15:48:22","guid":{"rendered":"http:\/\/blog.light42.com\/wordpress\/?page_id=4015"},"modified":"2025-10-21T08:50:51","modified_gmt":"2025-10-21T15:50:51","slug":"tour-of-california-swmaps","status":"publish","type":"page","link":"http:\/\/blog.light42.com\/wordpress\/?page_id=4015","title":{"rendered":"Tour of California swMaps"},"content":{"rendered":"<p>demo on a standards-based browser &#8220;SeaMonkey&#8221;<\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image0.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image0-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4017\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image0-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image0-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image0-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image0.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>(click on the image for a larger view)<\/p>\n<p>Obviously there is a label and some basemap.. Also notice that some California cities are labeled as POINT with varying size dots for population<\/p>\n<p>The main concept is to show the inventory of 2D building footprints for California, compare to real ortho-imagery, and compare to other maps.. so I can zoom in to &#8220;Santa Rosa&#8221; city north of here, and see the buildings, and the satellite imagery for that area.. ( on a date before 1\/3 of the city burned to the ground in 2017 )<\/p>\n<p><strong>Tour<\/strong> &#8211; I click the &#8220;zoom in&#8221; + sign twice<\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image2-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4018\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image2-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image2-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image2-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image2.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>see the COUNTY boundaries with labels.<br \/>\nthe COUNTY has a name, and also the five digit US Census code<br \/>\n( English at this time &#8211; of course it could be any language in the labels )<\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image3-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4019\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image3-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image3-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image3-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image3.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>Tour<\/strong>  Zoom in twice again, I see this.. the optional layers are OFF so this is only &#8220;WMS-Tiger&#8221; designed by <em>swoodbridge<\/em>  it is implemented in <strong>Mapserver<\/strong> layers<\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image4-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4020\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image4-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image4-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image4-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image4.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>COUNTY and another layer COUNTYSUB , we are zooming into Santa Rosa, north of Berkeley. COUNTYSUB has formal definition.. so I can do summary statistics and share the results with other professionals. We can look at some other base layers at this level, also.. they work on all the zoom levels.. <\/p>\n<p>base layer 2016 has the high resolution ortho imagery.. 60cm per pixel 4-band<\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image6-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4021\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image6-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image6-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image6-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image6.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>all local data &#8212; this is Santa Rosa in 2009 <\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image7.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image7-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4022\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image7-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image7-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image7-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image7.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4023\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8vhr.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8vhr-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4024\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8vhr-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8vhr-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8vhr-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8vhr.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8osm.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8osm-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4025\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8osm-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8osm-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8osm-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image8osm.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>I dont have the <strong>AuthBldgs<\/strong> layer in all cities.. I will complete this tour with an area closer to me.. I do have data across the Whole USA, in California, and in many cities of California.. but in different amounts<br \/>\n( I have some Boston and Maine in the 2009 ortho-imagery, for example.. )<br \/>\nI want to say that #mapserver does layer caching and that is working here. Some updates when zooming are very, very slow<br \/>\nbut in one view, clicking from a layer to another layer.. is instant &#8212; no delay, very very fast.. when the caches fill.<br \/>\nAn ordinary user almost always does the move that is slow .. zoom out to a whole state or part of the USA, then zoom in fast.. the performance here for those big operations is very bad.. even on fast hardware.<br \/>\nThis is an area north of me, in Very High Resolution (VHR) 60cm per pixel Infrared<\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4026\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9osm.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9osm-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4027\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9osm-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9osm-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9osm-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9osm.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9auth.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9auth-300x185.jpg\" alt=\"\" width=\"300\" height=\"185\" class=\"aligncenter size-medium wp-image-4028\" srcset=\"http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9auth-300x185.jpg 300w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9auth-1024x630.jpg 1024w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9auth-768x473.jpg 768w, http:\/\/blog.light42.com\/wordpress\/wp-content\/uploads\/2025\/10\/image9auth.jpg 1246w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>AuthData .. the project that paid for this<br \/>\nit took me years to learn all the parts, and months to build this data set.. there was a deliverable with many reports<br \/>\nIt is certainly a &#8220;Masters Degree&#8221; worth of work, all together.. In my opinion.. but I have no Master&#8217;s Degree, and the technology stack is not very popular.. it is very ready for Machine Learning or other advanced analytics..<br \/>\nIt is ready for 2020, 2024 or 2025 data.. using standards<br \/>\nthis all runs on RedHat linux, also<br \/>\nthe server is #postgis, #apache and #mapserver<br \/>\nthere are postgresql tables with relational data on those 2D building footprints.. in some areas there is a LOT of data<br \/>\non another day, we can look at a different project here.. from the library<br \/>\nquestions?  feedback ?<\/p>\n<p>I think the TIFF data handling is one big topic; and the postgresql relational data is also a big topic; #mapserver definitions are a large topic, with #mapcache support.. the US Census data is also a large topic.. the installation on linux of all these parts, is a large topic<br \/>\nI think it is a month of classes, to talk about all of these parts<\/p>\n<p>when I demo the map, the performance looks very slow<br \/>\ngoogle maps and other web maps do a LOT of tricks to be fast<br \/>\nbut, I have the DATA here.. I can add huge, huge amounts of detail data.. for research analytics<\/p>\n","protected":false},"excerpt":{"rendered":"<p>demo on a standards-based browser &#8220;SeaMonkey&#8221; (click on the image for a larger view) Obviously there is a label and some basemap.. Also notice that some California cities are labeled as POINT with varying size dots for population The main concept is to show the inventory of 2D building footprints for California, compare to real [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"http:\/\/blog.light42.com\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/4015"}],"collection":[{"href":"http:\/\/blog.light42.com\/wordpress\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/blog.light42.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/blog.light42.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.light42.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4015"}],"version-history":[{"count":4,"href":"http:\/\/blog.light42.com\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/4015\/revisions"}],"predecessor-version":[{"id":4031,"href":"http:\/\/blog.light42.com\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/4015\/revisions\/4031"}],"wp:attachment":[{"href":"http:\/\/blog.light42.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}