{
	"version": "https://jsonfeed.org/version/1",
	"title": "OldInsuranceMaps News",
	"icon": "https://avatars.micro.blog/avatars/2025/50/1855557.jpg",
	"home_page_url": "https://blog.oldinsurancemaps.net/",
	"feed_url": "https://blog.oldinsurancemaps.net/feed.json",
	"items": [
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/10/01/introducing-usertriggered-mosaic-generation/",
				"title": "Introducing user-triggered mosaic generation",
				"content_html": "<blockquote>\n<p>This feature was joint-funded by Wayne State University Libraries, the Leventhal Map &amp; Education Center at the Boston Public Library, and the American Geographical Society Library, at UW Milwaukee. A big thank you to these orgs for funding improvements that make the site better for everyone!</p>\n</blockquote>\n<p>Over the latter part of the summer I was able to add a feature to OldInsuranceMaps.net that greatly enhances its mosaic-making capabilities, and is the logical continuation of the <a href=\"https://blog.oldinsurancemaps.net/2025/11/30/reintroducing-the-multimask-interface/\">multimask</a> interface.</p>\n<p>Users can now queue the creation of single-file mosaics for volumes after the masking is complete, making it much easier to produce the full complement of distribution formats and web services. Links to all these formats, and to trigger the mosaicking processes, are now in the <strong>Mosaic</strong> &gt; <strong>Derivatives</strong> section of each map&rsquo;s summary page.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/7b70e021d6.png\" alt=\"\">\n<p>The creation of these mosaics is managed through a new <a href=\"https://oldinsurancemaps.net/jobs\">jobs</a> system that allows us to queue mosaics for creation without having to manually trigger them from the backend (which is what I was doing before).</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/6dd94591ec.png\" alt=\"\">\n<p>Check out the <a href=\"https://docs.oldinsurancemaps.net/guides/generating-mosaics/\">documentation</a> to jump straight into learning how to use it.</p>\n<h2 id=\"why-is-this-useful\">Why is this useful?</h2>\n<p>The multimasking concept only gets you so far. You can make contiguous masks for all content in a volume, but then you are still left with 100 individual layers, like this example of <a href=\"https://oldinsurancemaps.net/map/sanborn03985_005\">Detroit, Mich., 1897, vol. 2,</a>:</p>\n <img src=\"https://cdn.uploads.micro.blog/280698/2026/5a9f4775dc.png\" alt=\"\">\n<p>It&rsquo;s actually much more useful to combine those layers into a single file, making it easier to display and distribute the mosaic in new formats—like a single tile service endpoint for the whole volume, or as downloadable file for use in desktop GIS software.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/8eb3a754ff.png\" alt=\"\">\n<p>And while I had already scripted these functions, before this update I would just wait for someone to email saying they had finished masking the layers and it was time to make a mosaic. So with a trio of organizations interested in making a lot more mosaicked exports for use in their own web applications, it was a good time to try out something new.</p>\n<h2 id=\"no-one-likes-a-long-running-process\">No one likes a long-running process&hellip;</h2>\n<p>Creating these files is not that complicated to do; a mask is applied to each layer via a virtual raster (VRT), and each of those is added to one final mosaic VRT and then exported to one big GeoTIFF. But, it can take many hours, and they can get pretty big; the one shown above is about 400mb but they could easily be 2-5 times that size, depending on the geographic extent of all the layers to be combined. So I made a fairly basic queuing system, using Celery, a package I was already using to handle background tasks like warping and cleaning up abandoned georeferencing sessions.</p>\n<p>It works like this:</p>\n<ul>\n<li>The database now has a &ldquo;jobs&rdquo; table that stores configurations for each process.</li>\n<li>Each job has a status: <code>queued</code> , <code>running</code>, <code>completed</code> , or <code>errored</code>.</li>\n<li>Users create new job entries as desired, and new jobs have the status of <code>queued</code>.</li>\n<li>The existing <code>main</code> celery worker now checks, every minute, for <code>queued</code> jobs, and starts them in the order they were queued (first in, first out).</li>\n<li>A new <code>mosaic</code> celery worker is now dedicated to only running the actual mosaic processes, so when the main worker kicks the job off, its the mosaic worker that actually performs the task.\n<ul>\n<li>This leaves the main worker available to keep doing all of the georeferencing and other tasks needed throughout the day.</li>\n</ul>\n</li>\n</ul>\n<p>I was dubious about the feasibility of kicking off tasks in one worker from another, but it works great, actually. Again, more detailed info is available <a href=\"https://docs.oldinsurancemaps.net/guides/generating-mosaics/\">in the docs</a>.</p>\n<p>Also, because it is easy to swamp the server with multiple mosaic processes running at once, the current configuration will work through the queue uninterrupted but only allow two jobs to run concurrently.</p>\n<h2 id=\"same-system-different-formats\">Same system different formats</h2>\n<p>The appeal of setting this all up was not only to make it easier to generate mosaic COGs, but for the particular application we had in mind we also needed static XYZ tilesets that could be uploaded to an external storage bucket. So, once the job running framework was in place, I just slotted in a different function to build tilesets instead of COGs. In the future, we hope to add <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/issues/399\">PMTiles output</a> to the mix as well.</p>\n<h2 id=\"room-for-improvement\">Room for improvement</h2>\n<p>There is actually a lot of variability from job to job, in terms of how long it will take and the size of the output file.</p>\n<p>For example, as I write this, one particular job has been running for 16 hours! This is not ideal, and it&rsquo;s due only to the fact that this particular volume covers peripheral parts of a Oklahoma City, so the layers are spread out across a really wide geographic extent, and there is a huge amount of blank space in between.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/d2a9acef60.png\" alt=\"\">\n<p>This means that the process takes forever, and the resulting GeoTIFF will be really, really large, and mostly empty on top of that :/ So, there are surely better approaches for edge cases like this, and maybe down the road we&rsquo;ll add better ways to handle them. (A static XYZ tileset, or PMTiles file, would be a more efficient way to store this layer.)</p>\n<p>It would be good to actually display the size of these files as well, so people would have a better idea of what they were about to generate, or, later, download.</p>\n<h2 id=\"who-can-run-these-processes\">Who can run these processes?</h2>\n<p>For now, there is a group of users with the ability to trigger mosaic jobs on any maps, but all users can do so on maps that they have &ldquo;loaded&rdquo;. So if you had requested maps of a city to work on, loaded it, have georeferenced everything (that you can figure out), and completed the multimask, you can go ahead and queue the creation of a mosaic for that volume.</p>\n<p>Let us know how it goes! Join the <a href=\"https://openstreetmap.us/get-involved/slack/\">OSM US Slack</a> (introduce yourself in the #welcome channel!) and find us in the #oldinsurancemaps channel.</p>\n",
				
				"date_published": "2026-10-01T11:31:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/10/01/introducing-usertriggered-mosaic-generation/",
				"tags": ["tech"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/08/25/joining-the-osm-us-charter/",
				"title": "Joining the OSM US Charter Project program",
				"content_html": "<h2 id=\"big-announcement\">Big announcement!</h2>\n<p>An exciting and important update: I&rsquo;m very pleased to announce that OldInsuranceMaps.net is now officially a <a href=\"https://openstreetmap.us/our-work/charter-projects/oldinsurancemaps/\">Charter Project of OpenStreetMap US</a>! OSM US is a US-based non-profit that supports the community of mappers around OpenStreetMap, as well as numerous tools and websites related to open mapping efforts. As part of the Charter Project program, OldInsuranceMaps.net is now affiliated with OSM US&rsquo;s 501(c)(3) status, which not only makes it possible for people and organizations to make <a href=\"https://openstreetmap.app.neoncrm.com/forms/donate-oim\">tax-deductible donations</a>, but will further open the door to more grant opportunities and partnerships down the road. Also, OSM US already includes two other fantastic community-focused history projects, <a href=\"https://openhistoricalmap.org\">OpenHistoricalMap</a> and <a href=\"https://yesterdays.maprva.org\">Yesterdays</a>, so joining the network brings a multiplier effect to this whole digital public history stack.</p>\n<h2 id=\"having-an-advisory-board\">Having an Advisory Board</h2>\n<p>Another change I&rsquo;m especially looking forward to is that as a Charter Project, we need to have an Advisory Board to guide the direction of our work going forward. While I&rsquo;ve enjoyed being in charge of everything, mostly, the project and its community continues to grow and the landscape around it continues to change so it will really strengthen the whole effort to have a wider range of stakeholders involved with decision-making.</p>\n<p>I&rsquo;m happy to say that <strong>Riley Champine</strong>, Associate Director of the <a href=\"https://dsl.richmond.edu\">Digital Scholarship Lab</a> at the University of Richmond has agreed to join the Advisory Board, so for now it will be the two of us, with plans to add another member within a year. Since the fall of 2023, Riley has led a massive effort using OIM, which, as part of an <a href=\"https://reporter.nih.gov/search/bCrnkRo-rkWJJXyXqsj44g/project-details/10582012\">NIH-funded research project</a> led by the University of Michigan&rsquo;s <a href=\"https://isr.umich.edu/\">Institute for Social Research</a>, has had dozens of DSL students georeferencing tens of thousands of Sanborn maps. Riley is an enthusiastic mapper and cartographic storyteller and it will be wonderful to have him aboard. Welcome, Riley!</p>\n<h2 id=\"whats-coming-next\">What&rsquo;s coming next?</h2>\n<p>Well, stay tuned! We have some organizing to do and plenty of <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/issues\">good tickets</a> to work on for now&hellip; But this move to OSM US will cause no changes to how people can access and contribute to the platform.</p>\n<p>In the meantime, we would love to hear from you in the #oldinsurancemaps channel of the <a href=\"https://openstreetmap.us/get-involved/slack/\">OpenStreetMap US Slack</a>, on <a href=\"https://bsky.app/profile/oldinsurancemaps.net\">Bluesky</a> or <a href=\"@oldinsurancemaps@blog.oldinsurancemaps.net\">the Fediverse</a>, or just write a good old-fashioned email: <a href=\"mailto:hello@oldinsurancemaps.net\">hello@oldinsurancemaps.net</a>.</p>\n<h2 id=\"a-bit-of-reflection\">A bit of reflection</h2>\n<p>When I started this project in grad school, I didn&rsquo;t set out to create something that would exist long-term. I wanted to try building a new approach to crowdsourced historical map georeferencing, and then test it out on a set of maps that I had long admired, old fire insurance maps. Since then, and especially over the past few years, the whole thing has turned into something that I now think does deserve a permanent home, due not so much to my own efforts as to the wide range of personal and institutional interest that the project has drawn from people around the country.</p>\n<p>I have always seen OIM as an engine for open data, community engagement, and research, rather than a commercial endeavor, and likewise hoped that the next chapter of the project could retain these values. As I&rsquo;ve gotten to know the OpenStreetMap community, through OpenHistoricalMap, Yesterdays, and all the people these projects have brought to OIM, I&rsquo;ve found plenty of overlap in the OSM US ethos with what I had always envisioned for the project. Plus, as a national organization full of technical resources and smart, energetic people, I couldn&rsquo;t be happier for OSM US to be the foundation for whatever comes next.</p>\n<h2 id=\"credit-where-its-due\">Credit where its due</h2>\n<p>Finally, I&rsquo;d like to acknowledge the <a href=\"https://oldinsurancemaps.net/#who\">many partnerships</a> that have given this project life, especially the ISR / DSL teams for hosting and development funding, and the <a href=\"https://midlocenter.org/project/historyforge-of-new-orleans-and-southeast-louisiana/\">Midlo Center</a> here in New Orleans whose collaboration has made it possible to get people together for georeference-a-thons and some good old fashioned local history fun. Many more of these to come!</p>\n<p>Also, the individuals (hopefully some are reading this) who have gotten in touch over the years to either donate a bit of money or just send encouraging words. Even the shortest emails like &ldquo;as an amateur local history geek, I find this work amazing&rdquo; meant a lot, especially early on when things were slow.</p>\n<p>This is all to say that if you have ever sent some money over, been part of an event, or even just said something positive about the project, in those moments you became part of it and helped make it better. So thank <em>you</em>! <em>Forward!</em></p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/2026-08-oim-blog-header.jpg\">\n",
				
				"date_published": "2026-08-25T15:07:11-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/08/25/joining-the-osm-us-charter/",
				"tags": ["news"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/07/28/testing-the-waters-with-gcp/",
				"title": "Testing the waters with 2 GCP georeferencing (Helmert!)",
				"content_html": "<h2 id=\"in-short\">In short&hellip;</h2>\n<p>In  OldInsuranceMaps.net it is now possible to georeference maps with only two ground control points, instead of the previously required three. For the time being though, we&rsquo;re keeping this capability hidden (more about that in <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/discussions/403\">this discussion</a> and below), but I wanted to write a good summary here of how it works and why it is beneficial. Thanks to Dan VK for requesting this functionality <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/issues/381\">in a Github ticket</a>, and helping out along the way to streamline some of the code. I&rsquo;d been wanting to try to figure this out at some point, so this was a good push in the right direction.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/5d407a3987.png\" width=\"100%\" alt=\"\">\n<h2 id=\"gcps--transformation-algorithm---warped-map\">GCPs + transformation algorithm -&gt; warped map</h2>\n<p>To georeference a scanned historical map, you must create ground control points (GCPs) that link locations on the map with real-world coordinates. Then, these GCPs are fed through a transformation algorithm which results in a warped image. The <a href=\"https://docs.qgis.org/3.44/en/docs/user_manual/managing_data_source/georeferencer.html#available-transformation-algorithms\">QGIS documentation</a> has a good summary of the most common algorithms, including those mentioned below.</p>\n<p>With three or more GCPs, OIM defaults to using the <strong>Polynomial (1st order)</strong> (a.k.a. &ldquo;affine&rdquo;) transformation, which rotates and skews the image to match the control points while still retaining the internal integrity of the original document. The example below shows this, with three good GCPs and one bad one (in blue) added to cause the image to skew for illustrative purposes.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/e537a449c8.png\" alt=\"\">\n<p>OIM also supports the <strong>Thin Plate Spline</strong> transformation, which will mush the map every which way to make it fit any GCPs you give it. Consider how the same map and GCPs from above produce a very different and much more distorted warped output when you use Thin Plate Spline.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/ac4b9ad413.png\" width=\"100%\" alt=\"\">\n<p>However, these two transformations require three or more GCPs, but now a third transformation, <strong>Helmert</strong>, can be performed with only two (this is the new thing!).</p>\n<h2 id=\"why-is-this-good\">Why is this good?</h2>\n<p>Well, it&rsquo;s not always possible to create three GCPs that are well-distributed across a page, because some split map pieces are too small, or only have linear features, or are in areas that have changed too much since the map was drawn.</p>\n<p>Here&rsquo;s a good example in the form of a warehouse in Alexandria, La., from 1896:</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/e970342c56.png\" width=\"100%\" alt=\"\">\n<p>There are three intersections here, Casson with 5th, 6th, and 7th streets, but they are all in a row which is not helpful for Polynomial or Thin Plate Spline. But, using just two of these intersections with the Helmert transformation we can get a good fit:</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/blogimage.jpg\" width=\"100%\" height=\"290\" alt=\"\">\n<p>Going further, we can combine Helmert with a reference layer of adjacent georeferenced layers to get some pretty impressive (if, perhaps, questionable??) stitching. To illustrate, in the following image the upper layer has already been georeferenced, and we are looking to georeference a new layer below it. But the area of the layer has no good GCP matches when looking at today&rsquo;s aerial imagery or street map.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/49574d926b.png\" width=\"100%\" alt=\"\">\n<p>However, as is fairly common with Sanborn maps, on the bottom edge of the upper layer there are buildings outlined that are also represented on the layer we are looking to georeference. We can make two GCPs based on these overlapping building corners.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/639f1a3fc9.png\" width=\"100%\" alt=\"\">\n<p>Even though these are only two GCPs, tucked away in the top corner of the image, using Helmert they are enough to allow us to georeference the entire map as it lays out down the street.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/e4686ec23b.png\" width=\"100%\" alt=\"\">\n<p>Pretty cool! This would be especially helpful in places where there has been significant urban development, or on the edges of small towns where old sawmills have returned to being forests.</p>\n<h2 id=\"just-because-we-can-does-that-mean-we-should\">Just because we can, does that mean we should?</h2>\n<p>For now, we are keeping Helmert somewhat hidden in the interface, and this is mainly because if you only use two GCPs, it&rsquo;s easy to make something very quickly that may <em>look</em> good at first, but would actually be greatly improved by even one or two more GCPs and use of the Polynomial transformation. Also, it can be very finicky because, considering an example like that shown above, even very small adjustments on one of the points will cause big swings in the location of content on the far side of the page.</p>\n<p>But I think it&rsquo;s worth exploring further and making more accessible, so, if you have thoughts about this or opinions on best practices for georeferencing, we&rsquo;d love to hear them! Add to this <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/discussions/403\">Github discussion</a>, or join us on the <a href=\"https://openstreetmap.us/get-involved/slack/\">OpenStreetMap US Slack</a> in the <code>#oldinsurancemaps</code> channel, where we&rsquo;ve talked about this a bit already.</p>\n<p>The rest of this post will go further into how it all works anyway.</p>\n<h2 id=\"feels-like-witchcraft----wallykitty\">&ldquo;Feels like witchcraft&rdquo; &ndash; WallyKitty</h2>\n<p>Implementing the Helmert transformation was more challenging than I expected it to be. OIM uses <a href=\"https://gdal.org/en/stable/api/python/utilities.html#osgeo.gdal.WarpOptions\">GDAL&rsquo;s Python bindings</a> on the backend, which (essentially) take in GCPs and allow you to specify which order of polynomial to use, or alternatively to use thin plate spline. Then, a warped image is produced. Easy.</p>\n<p>But there is no switch to flip to tell GDAL to use Helmert, so I had to create a custom <a href=\"https://proj.org/en/stable/operations/pipeline.html\">proj pipeline</a> instead and pass that to the warping operation. That pipeline is where you provide <a href=\"https://proj.org/en/stable/operations/transformations/helmert.html\">Helmert its four parameters</a>, so once the plumbing was set up to get the pipeline working, it was time to figure out how to calculate those parameters, based on two input GCPs.</p>\n<p>Each GCP is a linked set of two coordinate pairs, one is the x, y pixel location on the original image in <em>pixel space</em>, and the other represents the latitude/longitude of a real-world location in <em>coordinate space</em>. More specifically, <em>coordinate space</em> is the projection you are using (in this case, Web Mercator), so another way to think of it is that there are two flat grids, one is the original image where each pixel is represented by an x,y coordinate, and the other is the target map projection.</p>\n<p>By comparing the values of the two GCPs, we need to come up with the following parameters, which the Helmert transformation will use to transform <em>pixel space</em> into <em>coordinate space</em>:</p>\n<ul>\n<li><strong>scale</strong>: A scale factor applied uniformly to the image.</li>\n<li><strong>rotation</strong>: How far around the image will be rotated.</li>\n<li><strong>x offset</strong> and <strong>y offset</strong>: The target location in <em>coordinate space</em> of the top-left corner of the image.</li>\n</ul>\n<p>If you understand that these parameters are all that Helmert needs, it&rsquo;s not actually so hard to visualize exactly how the transformation takes place:</p>\n<ol>\n<li>The image is scaled up or down so that it is the right size. If, for example, on the scanned historical map there is a scale bar that marks 100 meters, and this scale bar is 50 pixels long, then the scale factor would be 2, so that 1 unit in <em>pixel space</em> represents 2 units in <em>coordinate space</em> (in our target projection, the units are meters).</li>\n<li>The image is rotated. If the original image shows north going toward the top of the page, then no rotation is necessary. But if north points to the left on the original image, it must be rotated 90 degrees clockwise.</li>\n</ol>\n<p>At this point, we can imagine the image would be properly resized and rotated but without the final two parameters it will remain stuck at 0,0 in <em>coordinate space</em>. In the Web Mercator projection, 0,0 equates to latitude = 0, longitude = 0, or <a href=\"https://en.wikipedia.org/wiki/Null_Island\">null island</a> off the western coast of Africa. So&hellip;</p>\n<ol start=\"3\">\n<li>Lastly, the x, y offsets need to be calculated to tell the transformation where to put the top-left corner of the image. Now it is scaled, rotated, and shifted, so it appears in the correct location. All based on just two GCPs!</li>\n</ol>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/4788acc799.png\" width=\"100%\" alt=\"\">\n<p>Originally, I calculated each of these parameters one by one with some <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/blob/85321666e0cb4aede288a5728cfa27004f32f9cc/ohmg/georeference/georeferencer.py#L303\">math and trigonmetry that would have made my high school math teacher proud</a>. But there were a couple of limitations with how I had set things up, and after I added some tests, Dan VK contributed work that simplified the logic significantly by using a single <a href=\"https://numpy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\">numpy function</a> instead of all the individual calculations. Turns out this one function returns everything we need!</p>\n<hr>\n<p>Overall, even beyond the immediate benefits that this particular transformation bring, this was a very worthwhile foray into some of the more nitty gritty aspects of georeferencing and transformations, and I look forward to working on more improvements like this in the future.</p>\n",
				
				"date_published": "2026-07-28T08:39:42-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/07/28/testing-the-waters-with-gcp/",
				"tags": ["news"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/05/31/openstreetmap-account-authenication-added/",
				"title": "OpenStreetMap account authenication added",
				"content_html": "<p>New feature on OldInsuranceMaps.net: authentication via <a href=\"https://openstreetmap.org\">OpenStreetMap</a>! A special <em>thank you</em> to OpenHistoricalMap for helping to fund this development :).</p>\n<p>As a new user to OIM, you can connect through OpenStreetMap right when you first <a href=\"https://oldinsurancemaps.net/account/signup\">sign up</a>, or, if you are already logged into your OIM account, you can easily <a href=\"https://oldinsurancemaps.net/account/3rdparty/\">make a connection</a> to your OSM account. You can read more detailed instructions <a href=\"https://docs.oldinsurancemaps.net/getting-started/creating-accounts/#sign-up-via-3rd-party-authentication\">in the documentation</a>.</p>\n<p>And for more detailed information about the change to the code, checkout <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/pull/383\">the pull request</a>.</p>\n<p>I know it&rsquo;s a very common feature nowadays to be able to login through an external sites like Google or Facebook when creating new accounts, but I hadn&rsquo;t yet waded into figuring it out on OIM&hellip; frankly all of those login through other accounts buttons have always confused me. On the other hand, creating a new password for every website you visit is really really annoying (and leads to a slippery use-the-same-password-everywhere slope), so I knew that 3rd-party authentication was something I would eventually need to add to the site.</p>\n<p>As the user base of OpenStreetMap, and more specifically, OpenHistoricalMap, has been increasingly overlapping with OldInsuranceMaps.net, I&rsquo;m very happy to be able to add something that further eases user connections between the platforms. I&rsquo;ll be doing a 5-minute lightning talk about this at <a href=\"https://openstreetmap.us/events/state-of-the-map-us/2026/program/\">State of the Map US</a> (Friday afternoon) in under two weeks, so be sure to say hello if you are there!</p>\n",
				
				"date_published": "2026-05-31T18:54:39-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/05/31/openstreetmap-account-authenication-added/"
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/05/18/recap-may-georeferenceathons-in-new/",
				"title": "Recap: May Georeference-a-thons in New Orleans",
				"content_html": "<p>We had two successful and enjoyable georeferencing events earlier this month in New Orleans, thanks again to everyone who came out! About 20 people across the two Tuesday nights. Next time around, we&rsquo;ll finally mix up the schedule a bit so more people can make it out.</p>\n<p>Beyond georeferencing over 150 of pages of the <a href=\"https://oldinsurancemaps.net/map/sanborn03376_007\">Vol. 3, 1896</a> and <a href=\"https://oldinsurancemaps.net/map/sanborn03376_009\">Vol. 1, 1908</a> volumes (special shoutouts to <a href=\"https://oldinsurancemaps.net/profile/Cacomixl/\">Cacomixl</a>, <a href=\"https://oldinsurancemaps.net/profile/scanlan/\">scanlan</a>, and <a href=\"https://oldinsurancemaps.net/profile/ngoddard\">ngoddard</a>!!) , we also had a few short presentations about research that folks have been working on recently. On the first night, Alice Blackwell talked about what she had learned about her block in St. Roch by looking at Sanborn maps, and Mike Godzinski showed architectural photos he&rsquo;s been taking while walking the quiet residential streets of Uptown.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/pxl-20260513-010653290-crop.jpg\" width=\"600\" height=\"300\" alt=\"\">\n<p>On the second night, Alexander Trapps-Chabala presented the geneaological research he&rsquo;s been diving into about his ancestry (with a dazzlingly comprehensive set of points in Google Earth!)  and how it connects the Cane River area around Natchitoches with the 12th Ward neighborhood we had been georeferencing that evening.</p>\n<p>A big thank you to everyone who shared their work with us! And to Elizabeth, HistoryForge, and the Midlo Center for making these connections happen.</p>\n<p>Having these short, informal presentations really elevates the events by not only giving us all something to listen to while we work on maps, but also starting conversations where people can get to know each other and learn more about the city we live in (and beyond).</p>\n<p><em>Thanks as always to Second Line Brewing for letting us use their side room!</em></p>\n",
				
				"date_published": "2026-05-18T12:30:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/05/18/recap-may-georeferenceathons-in-new/",
				"tags": ["news"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/04/30/georeferenceathons-historyforge-new-orleans-umd/",
				"title": "Georeference-a-thons! HistoryForge (New Orleans), UMD, and UIUC",
				"content_html": "<h2 id=\"upcoming-georeferencing-events-in-new-orleans\">Upcoming Georeferencing Events in New Orleans</h2>\n<p>Here in New Orleans we are looking forward to two georeferencing events coming right up! For the next two Tuesdays (May 5th &amp; 12th) we&rsquo;ll be partnering with HistoryForge to host georeference-a-thons at Second Line Brewing, just like we&rsquo;ve done in the past; these will be our 7th and 8th events here!</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/georeferenceathon2026-thisone-wlink.png\" width=\"600\" height=\"436\" alt=\"\">\n<p>These are fairly informal gatherings, with an intro and demo at 6:30, and then socializing and georeferencing to follow. We also hope to have a short presentation about areas we&rsquo;ll be working on (8th Ward and 12th Ward), though are still ironing out those details.</p>\n<p>If you are in the area and would like to attend, please RSVP here: <a href=\"https://tiny.cc/georef\">tiny.cc/georef</a> looking forward to seeing some of you next week!</p>\n<p>I&rsquo;d also like to highlight a couple events that other groups have held recently.</p>\n<h2 id=\"mapping-historical-duluth-a-crazy-long-term-project-you-can-contribute-to\">Mapping Historical Duluth: A Crazy Long-Term Project You Can Contribute To</h2>\n<p>At University of Minnesota Duluth, Laure Charleux put together a public history workshop as part of the Twin Ports Festival of History. The event featured not only map georeferencing with OldInsuranceMaps.net, but also a historical photo tagging activity, which proved to be especially popular with attendees! Laure and her students are working on multiple digital history projects here: <a href=\"https://historical-gis-duluth-umn.hub.arcgis.com/\">Duluth Historical GIS</a>.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2026/c5b32e12c7.jpg\" width=\"600\" height=\"337\" alt=\"\">\n<h2 id=\"engineering-open-house-at-uiuc\">Engineering Open House at UIUC</h2>\n<p>Members of the Healthy Regions and Policies lab at University of Illinois, Urbana-Champaign put together a Friday evening map-a-thon as part of the <a href=\"https://www.eohillinois.org\">Engineering Open House, 2026</a>. Continuing to work on maps in their area, the group completed the <a href=\"https://oldinsurancemaps.net/map/sanborn02194_005\">Urbana 1909</a> atlas (almost 30 layers) as well as maps of some other small towns in the area. Thanks to Gabi, Anya, Marc, and especially Cat for putting this event together!</p>\n<hr>\n<p>If you or your organization would like to use OldInsuranceMaps.net to facilitate an event, don&rsquo;t hesitate to <a href=\"https://docs.oldinsurancemaps.net/#contact\">get in touch</a>! I&rsquo;ve also <a href=\"https://oldinsurancemaps.net/community-georeferencing/\">drafted a page</a> describing these events in general. A comprehensive list of all past events is still in the works though&hellip;</p>\n",
				
				"date_published": "2026-04-30T17:14:57-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/04/30/georeferenceathons-historyforge-new-orleans-umd/",
				"tags": ["news"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/04/25/codelib-video-links-and-other/",
				"title": "Code4Lib 2026 - Video links and other notes",
				"content_html": "<h2 id=\"code4lib-2026\">Code4Lib 2026</h2>\n<p>Early last month I attended Code4Lib 2026 in Philadelphia, and gave a presentation called <a href=\"https://www.youtube.com/live/6nBJ9ihhKkA?t=2382s\">Old Maps for New Apps: Making and Using Georeferenced Sanborn Maps at Scale</a>. It was a short one, 10 minutes, and while at first I thought I would be too pressed for time to give a full overview of OldInsuranceMaps.net to a new audience, I changed things around from how I usually do them and I&rsquo;m really happy with how it turned out. Per Code4Lib norms I&rsquo;ve made my slides <a href=\"https://zenodo.org/records/18925497\">available on Zenodo</a>.</p>\n<p>I also facilitated an after-conference workshop, <a href=\"https://2026.code4lib.org/workshops/running-a-community-georeferencing-event\">Running a Community Georeferencing Event</a>, and five people came to learn about how OIM can be used for collaborative work at community events. We worked on <a href=\"https://oldinsurancemaps.net/map/sanborn05436_001\">Camden, N.J., 1885</a>, and also a bit on <a href=\"https://oldinsurancemaps.net/map/sanborn05017_002\">Helena, MT, 1888</a> where one of the attendees was from. Shoutout to kcamanch1 for completing Camden even after we finished the workshop!</p>\n<p>It was my first time at Code4Lib and I really enjoyed it! As I don&rsquo;t work in a library many of the talks were not especially relevant to my day-to-day endeavors, but I did like seeing topics discussed that I had learned about in grad school, like BibFrame and EAD, and of course the ever-present dilemma of how to handle all of these bot scrapers&hellip; I especially enjoyed <a href=\"https://www.youtube.com/live/2vPK483jqn0?si=Murrh3_v3iwjkjKu&amp;t=1092\">Brandon Nightingale&rsquo;s keynote</a> about digitizing historical newspapers at the <a href=\"https://msrc.howard.edu/black-press-archive\">Black Press Archive</a> (Howard University). &ldquo;Digitizing is not passive work, it is architecture&rdquo;, i.e. the structure of a digital archive determines how useful it can be in the future. This is an approach to the work that certainly resonates with me.</p>\n",
				
				"date_published": "2026-04-25T17:39:07-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/04/25/codelib-video-links-and-other/",
				"tags": ["presentations"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/04/03/last-month-i-presented-at/",
				
				"content_html": "<p>Last month I presented at #Code4Lib: <a href=\"https://www.youtube.com/live/6nBJ9ihhKkA?t=2382s.\">www.youtube.com/live/6nBJ&hellip;</a> While preparing the slides, 10 minutes was feeling really short (especially for a new audience) but I reworked some things and I think it&rsquo;s actually the best introductory talk about the project I&rsquo;ve given!</p>\n",
				
				"date_published": "2026-04-03T09:20:46-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/04/03/last-month-i-presented-at/"
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/03/02/newsletter-winter-pt/",
				"title": "Newsletter: Winter (pt 2)",
				"content_html": "<h2 id=\"new-newsletter-platform\">New newsletter platform</h2>\n<p>This email is (hopefully) finding you via my new setup on <a href=\"https://blog.oldinsurancemaps.net/\">Micro.blog</a>. So, so you&rsquo;ll see a different &ldquo;from&rdquo; address. Most importantly, unlike before, <em>you cannot reply directly to this newsletter to get in touch</em>. Please write separately to <code>hello@oldinsurancemaps.net</code>.</p>\n<h2 id=\"getting-out-and-about\">Getting out and about</h2>\n<h3 id=\"mapping-usa-video-now-on-youtube\">Mapping USA: Video now on YouTube</h3>\n<p>At the very end of January I co-led a workshop during OpenStreetMap US&rsquo;s virtual Mapping USA conference,  <a href=\"https://www.youtube.com/watch?v=jTEge4z5_14\">Historical Mapping with OpenHistoricalMap, OldInsuranceMaps.net, and Yesterdays</a>. These are three community-focused history projects that all swirl around the OpenStreetMap ecosystem, and</p>\n<h3 id=\"this-week-tomorrow-code4lib\">This week (tomorrow!): Code4Lib</h3>\n<p>I&rsquo;m in Philadelphia this week presenting at <a href=\"https://2026.code4lib.org\">Code4Lib 2026</a>. If you happen to be attending, make sure to say hello! If not, all the presentations will be streamed on YouTube (<a href=\"https://2026.code4lib.org/general-info/attend\">more info here</a>), so you can tune in around 9:30 am Eastern Time on Tuesday (tomorrow) to see me. Really looking forward to this!</p>\n<p>I&rsquo;ll also be doing a workshop on Thursday about hosting georeference-a-thons, and this will ultimately yield more information on the main website about that topic, so stay tuned for that.</p>\n<h3 id=\"hacker-news-post\">Hacker News post</h3>\n<p>Earlier this month someone <a href=\"https://news.ycombinator.com/item?id=46788588\">posted OldInsuranceMaps.net on HackerNews</a>, which was exciting and just a bit stressful, 4,000 visitors in one day, about 100x the normal numbers! Overall it seems like the site held up pretty well, and it was fun to answer some questions in the ensuing discussion.</p>\n<h2 id=\"rss-anyone\">RSS, anyone??</h2>\n<p>We have a new code contributor, the first in many years! Josiah <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/pull/344\">added some RSS feeds</a> to the platform, so you can track activity on any maps within a given place. If you haven&rsquo;t heard anyone mention RSS in the last 10 years, you aren&rsquo;t alone. It is a protocol for publishing news feeds, but now we just get email notifications for everything. If you are interested in keeping track of what&rsquo;s going on in OldInsuranceMaps.net without going to the website every morning, then find your place of interest <a href=\"https://oldinsurancemaps.net\">here</a> and click the RSS icon in the top right to get the feed URL. I expect we&rsquo;ll be making updates to this over the next few months, so please reach out if you have any ideas or feedback.</p>\n",
				
				"date_published": "2026-03-02T08:49:38-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/03/02/newsletter-winter-pt/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2026/01/27/upcoming-mapping-usa-and-codelib/",
				"title": "Upcoming: Mapping USA and Code4Lib",
				"content_html": "<h2 id=\"mapping-usa-january-31\">Mapping USA (January 31)</h2>\n<p>This coming Saturday at 1pm CST I&rsquo;ll be co-presenting in a workshop at <a href=\"https://openstreetmap.us/events/mapping-usa/2026/\">Mapping USA</a>, a free virtual conference organized by OpenStreetMap US. The workshop, <a href=\"https://openstreetmap.us/events/mapping-usa/2026/historical-mapping-workshop/\">Historical Mapping with OpenHistoricalMap, OldInsuranceMaps.net, and Yesterdays</a> will feature demos from me, Jeff of <a href=\"https://openhistoricalmap.org\">OpenHistoricalMap</a>, and (particularly excitingly) Jacob and Mike from the new project <a href=\"https://yesterdays.maprva.org\">Yesterdays</a>. We&rsquo;ll be showing how all of these crowdsourced applications are interrelated, for example, how georeferenced maps OldInsuranceMaps.net have been integrated directly into Yesterdays.</p>\n<p>Registration is free, so come join us online this Saturday afternoon!</p>\n<h2 id=\"code4lib-march-2-5\">Code4Lib (March 2-5)</h2>\n<p>I also have a presentation <em>and</em> workshop coming up at <a href=\"https://2026.code4lib.org/\">Code4Lib 2026</a> in Philadelphia. This will be my first time at this conference, so I&rsquo;m especially looking forward to meeting new people in the library world.</p>\n<ul>\n<li><a href=\"https://2026.code4lib.org/talks/old-maps-for-new-apps-making-and-using-georeferenced-sanborn-maps-at-scale\">Old Maps for New Apps: Making and Using Georeferenced Sanborn Maps at Scale</a> - Main conference presentation (in-person and accessible via online registration)</li>\n<li><a href=\"https://2026.code4lib.org/workshops/running-a-community-georeferencing-event\">Running a Community Georeferencing Event</a> - Post-conference workshop (in-person only)</li>\n</ul>\n<p>This workshop will be the first time I have designed and presented materials specifically about the &ldquo;georeference-a-thons&rdquo; that we here in New Orleans and folks at a number of other organizations have held over the last few years. Preparing for this workshop will yield more documentation and materials around that part of the website, so stay tuned for more updates.</p>\n",
				
				"date_published": "2026-01-27T13:16:21-05:00",
				"url": "https://blog.oldinsurancemaps.net/2026/01/27/upcoming-mapping-usa-and-codelib/",
				"tags": ["presentations"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2025/12/27/blog-migration-completed-ive-consolidated/",
				
				"content_html": "<p>Blog migration completed! I&rsquo;ve consolidated all past blog posts and newsletters into this single feed on <a href=\"http://micro.blog\">@micro.blog</a> , and replaced the existing blog site at <a href=\"https://blog.oldinsurancemaps.net.\">blog.oldinsurancemaps.net.</a> Looks like some strangeness remains with dates on migrated past posts, but overall, success.</p>\n",
				
				"date_published": "2025-12-27T22:52:41-05:00",
				"url": "https://blog.oldinsurancemaps.net/2025/12/27/blog-migration-completed-ive-consolidated/"
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2025/12/12/winter-newsletter/",
				"title": "Newsletter: Winter 2025",
				"content_html": "<p>Herein: Updates on the future of OIM, some good ol' tech improvements, new blog post, and community notes. For new readers, welcome! And here are <a href=\"https://oldinsurancemaps.net/news/\">all past newsletters</a> in case one isn&rsquo;t enough.</p>\n<h2 id=\"2026-and-what-it-will-look-like\">2026 and what it will look like</h2>\n<p>In mid-January, I will be leaving my position at the <a href=\"https://healthyregions.org/team\">Healthy Regions &amp; Policies Lab</a> where I have been for the past 2½ years, leading or contributing to elements of meaningful efforts like the <a href=\"https://sdohplace.org\">SDOH &amp; Place Project</a>, <a href=\"https://oeps.healthyregions.org\">OEPS</a>, and <a href=\"https://chichives.com\">Chives</a>). I&rsquo;ve worked with wonderful people and learned a LOT, but plan now to return to freelance consulting for a bit through my own company <a href=\"https://legiongis.com\">Legion GIS</a>, and figure out what comes next.</p>\n<p>With that in mind, I&rsquo;m beginning to lay the groundwork for upgrades and enhancements to OldInsuranceMaps.net, and in the new year will be looking to 1) solicit one-off funding for specific efforts, and 2) create a new sponsorship model to provide more sustained support. As always, I am also open to larger institutional funding and collaborative opportunities.</p>\n<p>Roadmap, a.k.a. wishlist:</p>\n<ul>\n<li>Ability to load maps from other collections, an oft-requested enhancement!</li>\n<li>A new map &ldquo;request hub&rdquo;, to better track community requests and interest in particular volumes</li>\n<li>A new and improved web viewer for all maps in a given city</li>\n<li>More ways to visualize and explore statistics around the work that has been performed on the site (a small example of this below)</li>\n<li>Text extraction and search framework</li>\n<li>Comments, favorites, tagging, reporting issues, and other social things</li>\n</ul>\n<p><strong>If you or your organization would like to help make one of these happen (or have other ideas), please get in touch!</strong> You can reply directly to this email.</p>\n<h2 id=\"who-uses-oldinsurancemapsnet\">Who uses OldInsuranceMaps.net?</h2>\n<p>The home page now includes a new section, <a href=\"https://oldinsurancemaps.net/#who\">who uses this platform?</a>. I encourage you to check it out, as the list was longer than I even thought (over a dozen orgs and many individuals) and it was gratifying to put together. There are a few other in-progress collaborations that I hope to add soon.</p>\n<p><img src=\"https://s3.us-central-1.wasabisys.com/oldinsurancemaps/uploaded/markdownx/43e36b6a-c349-4aba-9119-1ea04fde9931.png\" alt=\"\"></p>\n<h2 id=\"improvements-to-the-multimask-interface\">Improvements to the &ldquo;multimask&rdquo; interface</h2>\n<p>I made a few small improvements to the interface that you can use to trim margins of adjacent georeferenced layers, which I call a &ldquo;multimask&rdquo; within the platform. Checkout this recent blog post <a href=\"https://blog.oldinsurancemaps.net/post/2025-12-01-reintroducing-the-multimask-interface/\">(Re)Introducing the Multimask Interface</a> to learn more about how this works (it has a bunch more animated gifs too!).</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/mm-add-mask.drvyhwq7-1sai7v.webp\" width=\"600\" height=\"352\" alt=\"\">\n<h2 id=\"is-that-a-leaderboard\">Is that&hellip; a leaderboard??</h2>\n<p>Every time we have a georeference-a-thon, some rogue georeferencer or especially competitive couple asks if there is a leaderboard. There <em>kind of</em> was, just a list of all users with numbers on the platform, but it was an old page and took forever to load. Moreover, it always ended up with Ibrahim or Nate or WallyKitty at the top which (while impressive!!) wasn&rsquo;t very useful for events where new folks were working on one map all together.</p>\n<p>So now there is a Stats table scoped to each Map, which you can find within the <a href=\"https://oldinsurancemaps.net/map/sanborn03376_011#summary\">Summary section</a>. I&rsquo;m sure this will evolve over time, but for now it is a fun, quick (and sortable) way to see who has been working on content. Also, that original profiles page is now <a href=\"https://oldinsurancemaps.net/profiles\">a lot faster</a>.</p>\n<p><img src=\"https://s3.us-central-1.wasabisys.com/oldinsurancemaps/uploaded/markdownx/aeefa228-7307-4816-8df0-029a6279df14.png\" alt=\"\"></p>\n<p>Since the beginning, I&rsquo;ve deliberately not gamified this platform. I figured why not see how far we can get without all of that. That said, there is a side of seeing this information that tells the story of who has done the work, which <em>is</em> a core tenant here, so I do hope to add more elements like this in the future. Who knows, maybe we&rsquo;ll have georeferencing capitáns at some point too.</p>\n<h2 id=\"faster-tile-loading\">Faster tile loading</h2>\n<p>I implemented TiTiler on AWS as a Lambda service, rather then running it in a Docker container on the main server. If any of that makes sense to you, you are probably just surprised it wasn&rsquo;t already setup that way. Well, now it is!</p>\n<p>There are still more tweaks to make (thanks for the tips, Eliot!), but already you should notice that the mosaic previews with 100 layers will load those layers all at once, instead of incrementally which was one of the limitations that came with the previous setup, and kind of a drag.</p>\n<h2 id=\"community-notes\">Community notes</h2>\n<h3 id=\"georeference-a-thons-in-new-orleans\">Georeference-a-thons in New Orleans</h3>\n<p>In mid-September, in collaboration with the Midlo Center for New Orleans Studies we held two back-to-back georeference-a-thons here in New Orleans, and our usual location of Second Line Brewing. Over the course of two evenings, about 30 people came, with only one person coming both nights (shoutout <a href=\"https://oldinsurancemaps.net/profile/scanlan\">scanlan</a>!). We worked on New Orleans, 1896, <a href=\"https://oldinsurancemaps.net/map/sanborn03376_006\">vol. 2</a>, and <a href=\"https://oldinsurancemaps.net/map/sanborn03376_008\">vol. 4</a>. The latter was especially fun because we split the tables into Carrollton, Gretna, Algiers, and 9th Ward.</p>\n<p>A huge thanks to everyone for coming out! We focused on these volumes in particular because the UNO archaeology crew had just done work in Duncan Plaza, so Elizabeth shared some slides about the research and what they had found.</p>\n<p><img src=\"https://s3.us-central-1.wasabisys.com/oldinsurancemaps/uploaded/markdownx/a390427e-898f-4bda-a6a2-3aa4a32c722c.png\" alt=\"\"></p>\n<h3 id=\"maprva-presents-yesterdays\">MapRVA presents: Yesterdays</h3>\n<p>A small and mighty team, <a href=\"https://maprva.org\">MapRVA</a> is an OpenStreetMap group in Richmond, VA, and a few months ago they began developing a new community project called <a href=\"https://yesterdays.maprva.org\">Yesterdays</a>. It is a <em>fantastic</em> crowdsourcing application for geolocating historical photographs of Richmond. They have already placed 5,000 photos!</p>\n<p><img src=\"https://s3.us-central-1.wasabisys.com/oldinsurancemaps/uploaded/markdownx/473ebfdb-12d8-4ed9-b494-35da8c011130.png\" alt=\"\"></p>\n<p>I learned about Yesterdays when they incorporated mosaics of Sanborn maps made in OldInsuranceMaps.net directly into their interface, which has proved an essential point of reference for placing historical photos. They&rsquo;ve done more georeferncing since to add more layers&ndash;John just georeferenced all of <a href=\"https://oldinsurancemaps.net/map/sanborn09064_007\">1925, vol. 2</a> in a couple of days by himself!</p>\n<hr>\n<p>That&rsquo;s all for now, thanks for reading!</p>\n<p>You can follow this project on Bluesky <a href=\"https://bsky.app/profile/oldinsurancemaps.net\">@oldinsurancemaps</a>, or for folks on the <a href=\"https://openstreetmap.us/get-involved/slack/\">OpenStreetMap US Slack</a>, find the new #oldinsurancemaps channel.</p>\n",
				"summary": "Herein: Updates on the future of OIM, some good ol' tech improvements, new blog post, and community notes. For new readers, welcome! And here are all past newsletters in case one isn’t enough.",
				"date_published": "2025-12-12T13:55:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2025/12/12/winter-newsletter/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2025/12/01/reintroducing-the-multimask-interface/",
				"title": "(Re)Introducing the MultiMask Interface",
				"content_html": "<p>The &ldquo;multimask&rdquo; is a concept in <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a> that greatly eases the creation of seamless mosaics from many different georeferenced layers. I recently made some updates to the user interface for this tool, and decided to take the time to provide a better introduction to feature as a whole.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/pittsburgh-multimask.bz4jm5z7-356wq.webp\" width=\"600\" height=\"206\" alt=\"\">\n<h2 id=\"make-me-a-clean-mosaic\">Make me a clean mosaic</h2>\n<p>To understand how the multimask idea came about, consider that if you georeference all pages in a historical atlas, you&rsquo;ll get something like this:</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/no-1908-vol2-nomasks.evyq7fmv-1ggjcu.webp\" width=\"600\" height=\"381\" alt=\"\">\n<p>This is the historic French Quarter in New Orleans, as shown on 24 georeferenced pages from the <a href=\"https://oldinsurancemaps.net/map/sanborn03376_010\">Sanborn map, Vol. 2, 1908</a>. As you can see, while each individual layer would look fine on its own, when they are all displayed together in a single web map the margins from each sheet overlap each other. This obscures information on adjacent sheets, and, generally speaking, looks very messy.</p>\n<p>Instead, we want to see a seamless mosaic like this, so that we don&rsquo;t lose information due overlapping pages, and as a single, clean layer, the mosaic becomes much easier to deal with.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/no-1908-vol2-masks2.b9byt-7f-z1hmj9g.webp\" width=\"600\" height=\"381\" alt=\"\">\n<p>Removing the edges is achieved by cropping or masking each layer, but creating these masks is typically very time-consuming and tedious work. <em>OldInsuranceMaps.net</em> uses a multimask to handle the task in a new way, and to understand why we&rsquo;ll back up a couple of steps to how the overall workflow is put together (or you can just skip to the end of this post to see some nice animated GIFs I made last night).</p>\n<h2 id=\"cropping-vs-splitting--trimming\">Cropping vs. splitting &amp; trimming</h2>\n<p>It&rsquo;s common in georeferencing workflows to use a two-step process:</p>\n<ol>\n<li>Crop the image to remove unnecessary margins</li>\n<li>Georeference the cropped image</li>\n</ol>\n<p>If you are working with a single standalone map, as opposed to a map that is a single page of a multi-page atlas, then this is a sufficient approach. Set the mask in the beginning, and you&rsquo;ll very likely have no reason to modify it later.</p>\n<p>However, with multi-page atlases, careful and fine adjustments to a mask may be needed <em>after</em> the page has been georeferenced, once you see how it lines up with an adjacent layer. Depending on the details of how the mask is implemented, this crop ➞ georeference workflow may not lend itself well to making iterative adjustments.</p>\n<p>Another thing to consider is that it is fairly common to have multiple maps drawn on a single page, especially in these city-wide multi-page atlases. For example, <a href=\"https://oldinsurancemaps.net/map/sanborn03267_002\">Alexandria, La., 1892</a> is a Sanborn map with three sheets (shown below), each with a different number of distinct mapped areas: sheet one has four different regions, sheet two has two regions, and sheet three is one full-page map.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/preparation-examples3.cjrglbnq-1p5rlo.webp\" width=\"600\" height=\"241\" alt=\"\">\n<p>It would be nice to deal with these using a pair of digital scissors, cutting or splitting each page until each map region stands on its own. Then each one of these seven pieces can be georeferenced individually.</p>\n<p>To recap then, we have 1) a need to handle multiple map regions within a given page, and 2) a need to carefully mask layers after they have been georeferenced, to properly accommodate the edges and masks of adjacent layers. These considerations led to the creation of a three-step workflow:</p>\n<ol>\n<li>Split a page: define the individual geographic regions</li>\n<li>Georeference each region: create and apply ground control points</li>\n<li>Trim the layer: remove margins of each georeferenced region as desired</li>\n</ol>\n<p>Instead of crop ➞ georeference, where the first step both defines the region to georeference <em>and</em> determines the final mask, split ➞ georeference ➞ trim fully separates these concerns, as they are now handled on either side of the actual georeferencing operation. While technically adding a step, this granularity actually creates a simpler and more efficient workflow.</p>\n<h2 id=\"trimming-each-layer-by-itself-is-slow\">Trimming each layer by itself is slow</h2>\n<p>To facilitate this final trim step, <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a> originally implemented a &ldquo;create a mask&rdquo; interface that operated on a per-layer basis. Once an item had been georeferenced, you could add a mask (stored as GeoJSON), which allowed you to trim the margins from layers in a manner that was easy to modify and didn&rsquo;t affect the existing georeferencing work.</p>\n<figure>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/2022-02-01-22-25.cqetjqxb-z4is46.webp\" width=\"600\" height=\"380\" alt=\"\">\n<figcaption>Screenshot of trimming interface from Feb 1st, 2022, when the pilot project went live.</figcaption>\n</figure>\n<p>However, it didn&rsquo;t take long to realize that on a layer-by-layer basis this approach was cumbersome and practically unworkable. Even though it was easy to alter masks at any point because they were simply laid on top of the layers (and didn&rsquo;t alter any files), doing so in an isolated environment provided no useful context for how to position one layer&rsquo;s mask with regard to that of its neighbor.</p>\n<h2 id=\"putting-it-all-together-multimask\">Putting it all together: Multimask</h2>\n<p>Eventually it became clear that there must be a better way to handle this whole trimming thing, and the key came down to changing the conceptual level at which the task was approached (which, as I think about it, is a theme throughout a lot of the platform&rsquo;s tooling). <em>Instead of trimming each layer one at a time, let&rsquo;s do them all at once!</em></p>\n<p>In practice, this looks like putting all layers on the map at once (see the messy image at the top of this post) and then selecting a layer, drawing a mask, then selecting the next layer, drawing a mask, and so on. This is more efficient simply because there is no moving between web pages to move on to the next layer, but with the design features shown below, things <em>really</em> start to look different.</p>\n<h3 id=\"snapping-as-a-core-value\">Snapping as a core value</h3>\n<p>One of the main challenges with creating adjacent masks is making sure that they line up exactly with each other. <a href=\"https://openlayers.org\">OpenLayers</a>, the web mapping library that <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a> uses throughout, has a very nice snapping capability, which is a key feature of the multimask interface.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/mm-add-mask.drvyhwq7-1sai7v.webp\" width=\"600\" height=\"352\" alt=\"\">\n<p>In the animation above, one sheet still needs to be masked, while all of its neighbors have already been handled. To create the mask for this final layer, you can just click, click, click, snapping to all adjacent vertices. Upon completion (double-click on the last point) a mask is created and applied to the layer immediately. This new mask shares exact vertices with all of its neighbors, guaranteeing seamless coverage and shared boundaries between layers.</p>\n<h3 id=\"masks-make-a-fabric\">Masks make a fabric</h3>\n<p>Many great things happen when you can use snapping. Not only is it easy to create masks quickly, but once multiple masks share the same vertex, any alterations to that vertex affect each mask.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/mm-move-vertex.prpdqwt-z14cyxe.webp\" width=\"600\" height=\"347\" alt=\"\">\n<p>For example, if four masks share a corner, moving that corner vertex will change all of them at once.</p>\n<h3 id=\"what-is-that-street-name\">What is that street name?</h3>\n<p>Fine-tuning the boundaries between different sheets is necessary when there are certain details at the edge of one layer that should be masked around to ensure that important information isn&rsquo;t lost. Making small adjustments like this is very easy because adding a vertex to a shared boundary automatically applies it to both masks.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/mm-fine-tune.b9ikbwfm-zxhn6e.webp\" width=\"600\" height=\"347\" alt=\"\">\n<p>In some cases, two neighboring sheets may have the name of the same street in very close proximity to each after they have been georeferenced, so you&rsquo;ll want to reveal that street name from on layer and hide it from the other.</p>\n<h3 id=\"using-colors-for-quality-control\">Using colors for quality control</h3>\n<p>Until recently, all vertices were white within the multimask interface, but a couple months ago I <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/pull/306\">added something</a> I had had in mind for a while: color-coding. If a vertex stands on its own, it is white, but if it has been snapped to another vertex it is green. This is especially helpful for cleaning up internal vertices that should be snapped together but for some reason haven&rsquo;t been.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/mm-fix-inner.rzibcl2h-z15ybkk.webp\" width=\"600\" height=\"347\" alt=\"\">\n<p>There are plenty of cases in which a vertex will legitimately stand on its own, like an exterior corner, or even internally where edges of sheets don&rsquo;t actually overlap. But having this new visual cue makes comprehensive cleanup efforts much easier to do.</p>\n<h2 id=\"some-final-thoughts\">Some final thoughts</h2>\n<ul>\n<li>There is still some clunkiness with how the whole interface works, and capabilities I hope to add in the coming year. So stay tuned!</li>\n<li>A foundational characteristic of the <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a> data model is <em>layersets</em>, not covered here at all, which are thematic categories of cartographic content within a given atlas and the context within which a multimask is created and applied. A topic for a future post&hellip;</li>\n<li>Creating masks is not only about trimming margins&ndash;masks are also precise vector features that define the coverage area of every single layer. These boundaries can by used in many different ways, for example <a href=\"https://observablehq.com/@mradamcox/interactive-map-mosaic\">this interactive mosaic demo I made many years ago</a>.</li>\n<li>Many thanks as always to the developers behind OpenLayers and <a href=\"https://viglino.github.io/ol-ext/\">this set of extensions</a>, the Crop filter from which makes this whole idea possible.</li>\n</ul>\n",
				"summary": "The “multimask” is a concept in OldInsuranceMaps.net that greatly eases the creation of seamless mosaics from many different georeferenced layers. I recently made some updates to the user interface for this tool, and decided to take the time to provide a better introduction to feature as a whole.",
				"date_published": "2025-11-30T19:00:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2025/11/30/reintroducing-the-multimask-interface/",
				"tags": ["tech"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2025/09/12/newsletter-fall-upcoming-events/",
				"title": "Newsletter: Fall 2025 - Upcoming Events",
				"content_html": "<h2 id=\"georeference-a-thons-in-new-orleans\">Georeference-a-thons in New Orleans</h2>\n<p>Over the next couple of weeks we&rsquo;ll be holding two community georeferencing events at Second Line Brewing in New Orleans. If you are in the area, we hope you can make it!</p>\n<ul>\n<li>Dates: Tuesday Sept 16th &amp; Tuesday Sept 23rd</li>\n<li>Time: 6:30-8:30pm</li>\n<li>Location: Second Line Brewing, 433 N Bernadotte St</li>\n<li>RSVP Form: <a href=\"https://tiny.cc/georef-2025\">https://tiny.cc/georef-2025</a></li>\n</ul>\n<p>As we have in the past, we&rsquo;re doing these events in collaboration with the Midlo Center and HistoryForge. We&rsquo;ll be starting work on the 1895 Vol. 2 Sanborn Map (which covers the CBD and more), and, excitingly, Elizabeth from the Midlo Center will also talk about the archaeological work they have been doing this summer in Duncan Plaza. We hope you can join!</p>\n<h3 id=\"front-end-party\">Front-end Party!</h3>\n<p>In early October I&rsquo;ll be doing a talk and activity for the wonderful Front-end Party software developer meetup here in New Orleans. Exact details TBD (they&rsquo;ll be <a href=\"https://www.noladevs.org/\">here</a> eventually), but I&rsquo;m really looking forward to getting some hack-a-thon action only weeks after all of these georeference-a-thons. Hopefully we&rsquo;ll have some fun web maps to share by the end!</p>\n<h3 id=\"thats-all-for-now\">That&rsquo;s all for now!</h3>\n<p>But, one fun little detail, a couple weeks ago I added &ldquo;duration&rdquo; as a column to the <a href=\"https://oldinsurancemaps.net/activity\">Activity page</a>. This is how long someone has the &ldquo;split&rdquo; or &ldquo;georeferencing&rdquo; interface open when they are performing one of those tasks. Fun to see, eventually I&rsquo;ll aggregate these durations for average time per sheet, etc. Also, there are sorting and filtering options on that table and many others within the site. Progress, slowly&hellip;</p>\n<p>Until next time!</p>\n<p>Adam</p>\n",
				
				"date_published": "2025-09-12T13:09:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2025/09/12/newsletter-fall-upcoming-events/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2025/08/08/using-gdals-vrts-for-georeferencing/",
				"title": "Using GDAL's VRTs for Georeferencing, from \"A look inside OldInsuranceMaps.net\"",
				"content_html": "<p>Recently I gave a presentation about <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a> for <a href=\"https://i-guide.io/i-guide-vco/\">I-GUIDE&rsquo;s Virtual Consulting Office</a> speaker series and I was able to talk a bit more about the technical details of the platform than I have in the past, which was really fun and a great excuse to make some more diagrams. One element of the system I described is the way that the georeferencing process relies on <a href=\"https://gdal.org/en/stable/drivers/raster/vrt.html\">GDAL&rsquo;s &ldquo;virtual raster&rdquo;</a> driver (i.e. file format), and how this is used for, among other things, the live preview feature of the georeferencing interface. Here&rsquo;s a short summary of that part of the talk with a few relevant slides. For more, you can <a href=\"https://i-guide.io/i-guide-vco/a-look-inside-oldinsurancemaps/\">view the full recording</a>, or find the <a href=\"https://docs.google.com/presentation/d/1zv23HALxZ_3VP8ox3Mr089qDxOn4mNrO2zOKWKsseiA/edit?usp=sharing\">slides here</a> (note, I&rsquo;ve updated some of them a bit since the recording).</p>\n<p>The basic georeferencing process, which turns a non-spatial image into a geospatial dataset, works by chaining two VRTs together and then writing out a GeoTIFF (specifically, a Cloud-Optimized GeoTIFF, or &ldquo;COG&rdquo;). The first VRT references the original image and embeds the user-submitted ground control points (GCPs). The second VRT references the first VRT, and embeds the warping information (which transformation to use). The final step is a GDAL translation process which turns the warped VRT into an actual COG.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/make-cog1.webp\" width=\"600\" height=\"336\" alt=\"\">\n<p>Importantly, a VRT is just a small XML file, so creating one is nearly instantaneous and requires virtually no storage space. In OldInsuranceMaps, they are also disposable, as the actual database stores all of the information that gets embedded into them. They can be recreated on demand and then deleted after they are no longer needed.</p>\n<p>With this in mind, the live preview that is presented in the georeferencing interface is created by injecting user-generated information directly into the VRT linkage chain, and updating that information on GCP creation or modification using a feedback loop. Creating this preview is actually very simple, because TiTiler, and MapServer which I used in the original implementation of this feature, can read and tile data directly from a VRT&ndash;no need to actually generate a GeoTIFF.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/cog-vrt-preview.webp\" width=\"600\" height=\"336\" alt=\"\">\n<p>Finally, to create the mosaics that are the ultimate end goal of the entire system, even more VRTs are added. First, on top of the warped VRT a new one is created that incorporates the layer&rsquo;s mask, drawn by users through a unified, &ldquo;multimask&rdquo; interface. Then, all of the cropped VRTs are wrapped up into a single mosaicked VRT (mosiacking is actually what VRTs are most commonly used for), and that final VRT is then translated into a single (sometimes quite large) COG.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/mm-move-vertex.prpdqwt-z14cyxe.webp\" width=\"600\" height=\"347\" alt=\"\">\n<p>There is even more you can do with this concept of chaining VRTs together, for example enabling the support of custom projections during the georeferencing process. Sanborn Maps are all very large-scale, so warping to a non-Web Mercator projection isn&rsquo;t necessary or useful. But I have implemented and tested this idea out with much smaller-scale maps that were drawn in a non-Mercator projection, and it works flawlessly. I described the concept in more detail in <a href=\"https://github.com/cogeotiff/rio-tiler/discussions/565#discussioncomment-5844734\">this old comment on GitHub</a>, and hope to properly implement it on the platform someday.</p>\n",
				
				"date_published": "2025-08-08T18:00:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2025/08/08/using-gdals-vrts-for-georeferencing/",
				"tags": ["presentations","tech"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2025/07/15/newsletter-summer/",
				"title": "Newsletter: Summer 2025",
				"content_html": "<p>Hello all! Writing to tell you about a few things that have happened in the last few months, and some upcoming news.</p>\n<p>For new readers: Welcome! You can find all past newsletters <a href=\"https://oldinsurancemaps.net/news/\">in the archive</a>. You can also respond directly to this email to say hello, and you&rsquo;ll find an unsubscribe link below.</p>\n<h3 id=\"online-presentation-for-i-guide-vco-series-tomorrow\">Online presentation for I-GUIDE VCO series, tomorrow!</h3>\n<p><strong>Wednesday 7/16, 11am US Central Time &ndash; <a href=\"https://i-guide.io/i-guide-vco/a-look-inside-oldinsurancemaps\">registration link</a></strong></p>\n<p>Apologies for the late notice. Tomorrow I&rsquo;ll be giving an online presentation as part of <a href=\"https://i-guide.io/i-guide-vco/\">I-GUIDE&rsquo;s Virtual Consulting Office</a> showcase series. I&rsquo;m really looking forward to this, as I&rsquo;ll be able to get into some of the more technical details of the platform, and there should be plenty of time for Q&amp;A as well. Registration is free and open to everyone! Big thank you to Alex Michels for organizing these talks.</p>\n<p>Also, <em>next week</em> I&rsquo;ll be co-presenting in the same forum with my colleagues from the Healthy Regions &amp; Policies Lab about our work on the <a href=\"https://sdohplace.org/search\">SDOH &amp; Place Data Discovery</a> application. Come to that one too for something completely different!</p>\n<h3 id=\"results-of-a-past-georeference-a-thon\">Results of a past georeference-a-thon</h3>\n<p>This past April, Rowan University&rsquo;s <a href=\"https://chss.rowan.edu/centers/cdhr/\">Center for Digital Humanities Research</a> hosted the largest georeferencing event that the site has facilitated to date. Over the course of an afternoon, 50 new people made accounts and georeferenced over 250 layers, covering a number of towns around Glassboro, New Jersey. It really had the server churning, slowed things down a bit for sure, but nothing broke. Read more about it in <a href=\"thewhitonline.com/80663/features/rowans-center-for-digital-humanities-research-hosts-first-ever-map-a-thon/\">the Whit</a>.</p>\n<h3 id=\"website-content-reshuffle-and-new-blog\">Website content reshuffle and new Blog</h3>\n<p>I&rsquo;ve accumulated content about OldInsuranceMaps.net in a few different places, and web analytics show that no one really looks at it. So, a couple weeks ago I bribed my wife with pizza and we spent some time figuring out how to reorganize. I&rsquo;ve done my best to see these changes through over the last couple of weekends, and they aren&rsquo;t complete, but&hellip;</p>\n<ul>\n<li><strong>New Blog! <a href=\"https://blog.oldinsurancemaps.net\">blog.oldinsurancemaps.net</a></strong> I&rsquo;ll be transferring all kinds of pieces from different places into this blog, and it&rsquo;ll be the best place to stay up-to-date on the project and see how it&rsquo;s developed over time. I put a lot of entries in already (back-posting as if I&rsquo;d been writing in it for years), and will continue to do that until I can&rsquo;t think of anything more to add. Let me know if you have suggestions! (This newsletter isn&rsquo;t going away though.)</li>\n<li><strong>More content on the main website</strong> A while ago I created <a href=\"https://about.oldInsuranceMaps.net\">about.oldinsurancemaps.net</a> with documentation, background, and guides on it, but that content has remained somewhat obscure and much of it would be better housed directly within the main website itself. So, with a bit of an update to the main site&rsquo;s structure, I&rsquo;m beginning to transfer it over and that site will eventually go away. Still a work in progress, but finally on the way.</li>\n</ul>\n<h3 id=\"and-a-final-tech-note\">And a final tech note&hellip;</h3>\n<p>OldInsuranceMaps.net now stores all of its geotiffs in S3 object storage! In other words, there is a lot more space for new maps. This is a backend change that really opens the door for future work&hellip; Not a difference you would notice from looking at the website, but for more information you can checkout <a href=\"https://blog.oldinsurancemaps.net/post/2025-06-29-implementing-s3-storage/\">this blog post</a> (on the new blog!).</p>\n<p>That&rsquo;s all for now, hope to see some of you tomorrow morning,</p>\n<p>Adam</p>\n",
				
				"date_published": "2025-07-15T07:38:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2025/07/15/newsletter-summer/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2025/06/29/implementing-s-object-storage/",
				"title": "Implementing S3 Object Storage",
				"content_html": "<h2 id=\"what-is-s3-object-storage\">What is S3 Object Storage?</h2>\n<p>S3 object storage is a protocol developed by Amazon Web Services for handling file storage outside of a normal server environment and &ldquo;in the cloud&rdquo; instead. In other words, it&rsquo;s a simplified way of uploading, downloading, or directly accessing files that are stored in remote &ldquo;buckets&rdquo;. In these buckets, storage is (broadly speaking) very cheap and practically unlimited. Many other companies have since adopted the S3 API so their own cloud storage offerings are compatible with it.</p>\n<h2 id=\"implementing-a-new-storage-backend\">Implementing a new storage backend</h2>\n<p>To this point, <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a> has functioned by downloading image files from the Library of Congress (or other sources, in certain contexts) and storing those files on the main server. Once the images are available locally, the splitting, georeferencing, and mosaicking operations are performed directly on those files, creating even more files (ultimately, <a href=\"https://cogeo.org/\">Cloud Optimized GeoTIFFs</a>) on the server. Really, the entire point the platform is to build tools and workflows around the creation and management of these files.</p>\n<p>One downside to this approach is that the server has limited storage space, let&rsquo;s say about 500gb. This has been plenty for the last few years (especially as <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/pull/145\">I&rsquo;ve implemented better compression methods</a> over time) but as available space inevitably diminishes, I decided it was finally time to progress to a new storage strategy.</p>\n<p>To implement S3 storage for all content in OIM, there were two general tasks:</p>\n<ol>\n<li>\n<p>Update the code base to work with remotely stored content instead of relying on files on disk</p>\n</li>\n<li>\n<p>Upload all existing content to an S3 bucket</p>\n</li>\n</ol>\n<p>How much existing content? Well, quite a lot. After a big server cleanup effort (this was the first time I had comprehensively dealt with all kinds of orphan files and remnants from past experiments) there were <em>roughly</em> 130,000 files using about 430gb of disk space.</p>\n<p>There were also a couple of important constraints to work around:</p>\n<ol>\n<li>\n<p>S3 storage needs to be optional, so that future installations of the code base can run just using local file storage</p>\n</li>\n<li>\n<p>Gotta keep the site running! There is a bit of operational inertia that must be respected on the platform, now that there is a lot of content on it and people using it everyday. Practically speaking, this means making slow, incremental steps.</p>\n</li>\n</ol>\n<h3 id=\"code-compatibility\">Code compatibility</h3>\n<p>OIM is built with the Django web framework, and there is a solid, standardized way for implementing S3 storage using <a href=\"https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html\">django-storages.</a> In theory then, the storages plugin could be installed, a switch could be flipped, and violá, Django will read and write to an S3 bucket instead of the local file system.</p>\n<p>However, it wasn&rsquo;t that simple. Due to the fact that a lot of splitting, georeferencing, and mosaicking operations had been built with the expectation of local file storage, some of them failed once S3 got involved. Luckily, GDAL (on which OIM has relied from the start) has a <a href=\"https://gdal.org/en/stable/user/virtual_file_systems.html\">fantastic virtual file system</a> that allows it to read directly from S3 urls, and combining that with another GDAL feature, <a href=\"https://gdal.org/en/stable/drivers/raster/vrt.html\">virtual rasters or VRTs</a>, offered plenty of flexibility to work with. Ultimately, the implementation required rewriting and improving some basic functions at the core of the app, but produced a better code base in the end. If you are interested, you can read all the gory details in <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/pull/280\">this pull request</a>.</p>\n<h3 id=\"syncing-the-content\">Syncing the content</h3>\n<p>With the code updated, I had only to transfer all files to an S3 bucket and then point the application to it. I chose to use <a href=\"http://wasabisys.com\">Wasabi</a>, a very cheap S3 storage solution, but the beauty of this upgrade is that the code is provider agnostic&ndash;in the future switching to Amazon or Linode S3 Object Storage should be fairly painless.</p>\n<p>In the week before the final deployment, I configured <a href=\"https://aws.amazon.com/cli/\">aws cli</a> to point to a new backup bucket in Wasabi, and used it to periodically sync the entire set of files from the production server to that bucket. About 100 new files get created everyday, so the <code>sync</code> operation (which only updates new or altered files) was crucial for seamlessly keeping everything up-to-date.</p>\n<h2 id=\"the-result\">The result</h2>\n<p>It went well! Since the switch on a Sunday afternoon, all new files have gone straight to S3, and all of the existing interfaces and viewers on the site now run from COGs in S3 instead of through <code>nginx</code> on the server.</p>\n<p>One hiccup I encountered was that the setting <code>AWS_QUERYSTRING_AUTH</code> in Django was automatically set to <code>True</code> , causing the URLs that the backend returned to have embedded expiration dates in them. Everything would be fine when I re-generated the lookups (which include saved URLs for things like thumbnails) but then the next day these same URLs would be &ldquo;unauthorized&rdquo; and no longer work. Setting <code>AWS_QUERYSTRING_AUTH=False</code> fixed this issue.</p>\n<p>Wasabi is <em>very</em> cheap, just $7/month per terabyte, meaning that the 440gb I have in the bucket (doubled if you include the backup bucket) falls within the lowest tier of usage. A very quick back-of-the-envelope calculation shows that if the <em>entire</em> LOC Sanborn Map collection (500,000 sheets resulting in at least 3x that many files) were georeferenced on OIM, storage would be under 7tb ($49/month) or double that with a backup. That seems like a pretty good deal.</p>\n<p>I&rsquo;ve talked about making this upgrade for a while, so it feels good to finally do it. Technically, I could delete all old content from the server and then downgrade it to reduce the monthly bill, but storage was just one of the elements in play, because the splitting and warping processes do benefit from a powerful server, not to mention I still run TiTiler directly on the server as well. All in good time&hellip;</p>\n",
				
				"date_published": "2025-06-28T19:00:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2025/06/28/implementing-s-object-storage/",
				"tags": ["tech"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2025/02/21/in-review-new-features/",
				"title": "Newsletter: 2024 in Review + new features!",
				"content_html": "<p>Hello and happy second month of the New Year! It is high Mardi Gras season here in New Orleans and I feel like everything is happening at the same time.</p>\n<p>For new readers: Welcome! You can find all past newsletters <a href=\"https://blog.oldinsurancemaps.net/archive\">in the archive</a>.</p>\n<p>Also, OldInsuranceMaps.net is <a href=\"https://bsky.app/profile/oldinsurancemaps.net\">now on Bluesky</a>, come be our 2nd follower! I&rsquo;ll post smaller more frequent updates there, and it will also be something people/orgs can tag when they use OIM for events or research. And, don&rsquo;t forget the <a href=\"https://forum.openhistoricalmap.org/c/oldinsurancemaps/13\">discussion forum</a> a great way to connect with other people using OldInsuranceMaps.net.</p>\n<h3 id=\"2024-stats-and-summary\">2024 Stats and Summary</h3>\n<p>On NYE of 2023 I sent a <a href=\"https://oldinsurancemaps.net/news/2023-year-in-review/\">newsletter with a nice chart</a> of work performed over that year. For 2024, I don&rsquo;t have anything that nice to offer, but here are some numbers from last year:</p>\n<ul>\n<li>New users: 170 (366 total)</li>\n<li>Preparation sessions: 23,235 (31,360 total)</li>\n<li>Georeferencing sessions: 29,402 (41,514 total)</li>\n<li>New Layers: 28,361 (32,362 total)</li>\n</ul>\n<p>As you can tell, 2024 <em>far exceeds</em> all work from past years, largely owed to the incredible work of students and staff at the University of Richmond Digital Scholarship Lab, who seem to be georeferencing 24/7. There have been substantial individual efforts as well though:</p>\n<p><a href=\"https://oldinsurancemaps.net/profile/hayleox/\">hayleox</a> in Cincinnati, OH • <a href=\"https://oldinsurancemaps.net/profile/mrileyowens/\">mrileyowens</a> in Cincinnati, OH (you two should talk!) • <a href=\"https://oldinsurancemaps.net/profile/ekoparker/\">ekoparker</a> in Chicago, IL •\\r\\n<a href=\"https://oldinsurancemaps.net/profile/sanborn_again1\">sanborn_again1</a> in Springfield, IL • <a href=\"https://oldinsurancemaps.net/profile/mhowell/\">mhowell</a> in Noblesville, IN • <a href=\"https://oldinsurancemaps.net/profile/tagifford/\">tagifford</a> in Schenectady/Scotia, NY • <a href=\"https://oldinsurancemaps.net/profile/Gullimapozo/\">Gullimapozo</a> in Gary, IN • <a href=\"https://oldinsurancemaps.net/profile/lablakely/\">lablakely</a> in Waco, Austin, and Georgetown, TX • <a href=\"https://oldinsurancemaps.net/profile/cliftonmr/\">cliftonmr</a> in Cleburne, TX • <a href=\"https://oldinsurancemaps.net/profile/Pete_Zivkov/\">Pete_Zivkov</a> in Bellingham, WA • and others!</p>\n<p>Plus, of course, a handful of georeference-a-thons (more on those below).</p>\n<p>Overall, <em>very roughly</em>, I would estimate we have georeferenced over 1/20th of the entire Library of Congress Sanborn map collection (500k documents in the collection, 38k on OldInsuranceMaps, definitely at least 25k of those processed). Wild!</p>\n<h3 id=\"georeference-a-thons\">Georeference-a-thons</h3>\n<p>Many of these since last newsletter in mid-November!</p>\n<ul>\n<li><strong>Healthy Regions &amp; Policies Lab @ UIUC</strong>: For GIS Day last year (Nov. 20th) I took the Amtrak to Champaign to work with my colleagues at the University of Illinois to have a 2-hour event where we georeferenced Champain and Urbana maps from 1915. We even had two guest speakers over Zoom! See <a href=\"https://healthyregions.org/2025/01/31/gis-day-2024-community-georeferencing-of-sanborn-fire-insurance-maps/\">this blog post</a> for more details (and action shots!).</li>\n<li><strong>UChicago</strong>: Later that day I joined a (very) small group at UChicago, which was kind of perfect because I got to show Parker and Rob around the site in detail. Thanks to Rob for setting this up, on top of all the other GIS Day programming!</li>\n<li><strong>OSU</strong> - Also on GIS Day, the team at the Ohio State University Libraries hosted their <a href=\"https://library.osu.edu/events/gis-day-2024\">third georeference-a-thon to date</a>, working on maps of Columbus, great to see such a long-term, continued effort there.</li>\n<li><strong>Morgan State University + UIUC</strong>: The following day, &ldquo;Post-GIS Day&rdquo;, we held a collaborative online event between a group at Morgan State led by Dr. Lawrence Brown, and Dr. Marynia Kolak&rsquo;s Population Geography class at UIUC. Instead of Sanborn maps, we used OldInsuranceMaps.net to georeference FHA Block Data maps from the late 1930&rsquo;s and 1940&rsquo;s. Stay tuned for more about this project in the future.</li>\n<li><strong>Community Mapping Lab @ University of Georgia</strong>: Just a few weeks ago, Dr. Jerry Shannon and team at UGA held an event to georeference Athens, GA maps, and you can read more about their work <a href=\"https://www.communitymappinglab.org/digitizing-athens-sanborn-maps.html\">here</a>. Jerry&rsquo;s <a href=\"https://bsky.app/profile/jerry-shannon.bsky.social/post/3li3w4jnv7s2u\">post on Bluesky</a> also has some action shots!</li>\n</ul>\n<h3 id=\"new-features\">New features</h3>\n<p>I&rsquo;d like to highlight a few new/experimental features I&rsquo;ve added in the last couple of months.</p>\n<ul>\n<li><strong>Activity filters</strong>: The <a href=\"https://oldinsurancemaps.net/activity/\">activity page</a> is the easiest way to see all current and past work that has been carried out on the platform. I&rsquo;ve added filters so you can only show work on specific maps, within a date range, or by a certain user.</li>\n<li><strong>Parcel layer snapping</strong>: We found that in San Francisco maps, each individual <em>block</em> must be georeferenced individually. This is not only extremely tedious, but also more difficult because you can&rsquo;t use street intersections for control points. So, I set up a system where current parcel lines can be added as a reference layer that you can snap your control points to, which not only speeds things up, but also greatly increases the accuracy of contributed work. I wrote a bit about that <a href=\"https://forum.openhistoricalmap.org/t/street-widths-not-to-scale-more-examples/389\">on the forum</a>. Have added this feature to a couple other cities, but it is still in development.</li>\n<li><strong>Allmaps and IIIF support</strong>: Just last week/weekend, I finally set up endpoints on the site that will return IIIF Georeference Annotations for any layer or mosaic within OldInsuranceMaps.net, which can be used directly in the Allmaps Viewer. You can read more about the work in this <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/pull/258\">pull request (examples included)</a>, and you&rsquo;ll now see links to &ldquo;Open in Allmaps Viewer&rdquo; within OldInsuranceMaps map overview pages. If you aren&rsquo;t familiar with Allmaps, I strongly encourage you to <a href=\"https://allmaps.org\">check it out</a>.</li>\n</ul>\n<h3 id=\"looking-ahead\">Looking ahead</h3>\n<ul>\n<li><strong>Colocate2 at Stanford</strong>: Next week I am attending a small &ldquo;unconference&rdquo; at the David Rumsey Map Center at Stanford. Really looking forward to this and the discussions that will follow, as it is largely focused on institutional georeferencing work, GeoBlacklight, and Allmaps.</li>\n<li><strong>Louisiana History Association Annual Meeting</strong>: On Sat. March 15th I&rsquo;ll be participating in a round-table discussion &ldquo;Mapping the Past: GIS Technology Implementation for Historic Sites&rdquo; at the annual meeting of the Louisiana History Association, with Elizabeth Williams (Midlo Center at UNO, HistoryForge) and Sarah Waits (archivist at Archdiocese of New Orleans). If you are attending this meeting, please say hello!</li>\n<li><strong>Georeference-a-thon at Rowan University</strong>: In April, a group at Rowan University will hold a few events to georeference maps in Gloucester County, NJ. Hopefully I&rsquo;ll be able to pass on another update about this next month.</li>\n</ul>\n<h3 id=\"thank-you\">Thank you!</h3>\n<p>A big thank you to everyone who continues make this project possible. Especially my colleagues and lab PI Marynia Kolak at UIUC, as well as the team at the URichmond DSL and their partnership with the University of Michigan. Jeff and Minh continue to make <a href=\"https://www.openhistoricalmap.org\">OpenHistoricalMap</a> an inviting place to map history (checkout <a href=\"https://www.openhistoricalmap.org/#map=17/39.107819/-84.516191&amp;layers=O&amp;date=1919-01-04&amp;daterange=1825-01-01,2025-12-31\">hayleox&rsquo;s work in Cincinnati</a>, or Pete&rsquo;s <a href=\"https://www.openhistoricalmap.org/#map=18/29.958151/-90.064550&amp;layers=O&amp;date=1885-09-24&amp;daterange=1825-01-01,2025-12-31\">super detail of New Orleans' French Quarter in 1885</a>), which in turn drives people to OldInsuranceMaps.net where they can create Sanborn base layers to digitize from. Finally, thank <em>you</em> for reading this whole thing!</p>\n<p>&ndash; Adam</p>\n",
				"summary": "Hello and happy second month of the New Year! It is high Mardi Gras season here in New Orleans and I feel like everything is happening at the same time. For new readers: Welcome! You can find all past newsletters in the archive…",
				"date_published": "2025-02-21T09:30:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2025/02/21/in-review-new-features/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2024/11/15/gis-day-events-nacis-data/",
				"title": "Newsletter: GIS Day Events | NACIS | Data Agreement",
				"content_html": "<p>In case you didn&rsquo;t know, <em>GIS Day</em> this year is next Wednesday, Nov. 20th, in the middle of <a href=\"https://www.aag.org/geography-awareness-week-2024/\">Geography Awareness Week</a>. <em>GIS Day</em> was started by the company ESRI (of ArcGIS reknown) many years ago, and I <a href=\"https://www.esri.com/about/newsroom/arcnews/discovering-the-world-on-gis-day/\">just learned</a> that Ralph Nader was the inspiration behind the day. Of course, there is a lot to GIS beyond Esri, but as someone who learned about the field at the end of my undergrad and never looked back, I love that <em>GIS Day</em> exists and consider it a great &ldquo;holiday&rdquo; to promote. Also, what better time to hold historical map crowdsourcing events?</p>\n<p>Also, if you skip most of this newsletter, please at least read about the new Data Agreement at the bottom.</p>\n<h2 id=\"georeference-a-thons-of-future\">Georeference-a-thons of Future</h2>\n<h3 id=\"uiuc---healthy-regions--policies-lab\">UIUC - Healthy Regions &amp; Policies Lab</h3>\n<p>Through my work at HeRoP, we will be putting on a georeference-a-thon in Champaign next Wednesday. You can learn much more about it through this <a href=\"https://www.eventbrite.com/e/historical-map-georeference-a-thon-tickets-1069694477979?aff=oddtdtcreator\">Eventbrite link</a>. The event will be in-person, but we have a Zoom option as well (find it at the bottom of the Eventbrite) and we plan to have a couple of short talks via Zoom by researchers who use historical maps. We will be working on Sanborn maps of Champaign and Urbana from 1915, and I&rsquo;m looking forward to students getting to learn about what their university environs looked like in the past.</p>\n<h3 id=\"university-of-chicago-libraries\">University of Chicago Libraries</h3>\n<p>After our event at UIUC, the University of Chicago Library will also have a georeferencing event starting at 2pm in the afternoon. For more details about this event, stay tuned to <a href=\"https://forum.openhistoricalmap.org/c/oldinsurancemaps/13\">OldInsuranceMaps.net Forum</a>, an oft-overlooked-but-full-of-potential discussion space that we have. I&rsquo;ll be posting all of this information there in the coming days.</p>\n<h3 id=\"morgan-state-university---the-black-butterfly-project\">Morgan State University - The Black Butterfly Project</h3>\n<p>In collaboration with Dr. Lawrence Brown and the team at Morgan State, we&rsquo;ll be doing a <em>non-Sanborn map</em> georeference-a-thon on Nov. 21st. We will instead be working with old FHA Loan maps from the 1930s, which Dr. Brown sought out and scanned at the National Archives in Maryland. We are extremely lucky to be able to support this work, and we&rsquo;ll finally get to see the site with a different set of maps! You can learn more about this event, and join from afar, through this <a href=\"https://www.eventbrite.com/e/gis-day-georeference-a-thon-tickets-1037041628427?aff=oddtdtcreator\">Eventbrite link</a>.</p>\n<h3 id=\"the-ohio-state-university-libraries\">The Ohio State University Libraries</h3>\n<p>At the Ohio State University, Josh Sadvari and the team at the library will be putting on another <a href=\"https://library.osu.edu/events/gis-day-2024\">GIS Day Georef-a-thon</a> just like <a href=\"https://waml.org/waml-information-bulletin/volume-55-number-2/piloting-a-sanborn-map-georef-a-thon/\">they did last year</a>. This is an in-person event, and part of a full day of GIS talks, all of which look fascinating. Do check it out if you are in the Columbus area!</p>\n<h2 id=\"georeference-a-thons-of-present\">Georeference-a-thons of Present</h2>\n<p>Not exactly <em>present</em>, but just a couple days ago the team at the URichmond <a href=\"http://dsl.richmond.edu/\">Digital Scholarship Lab</a> held a <em>competitive</em> georeference-a-thon (the first of its kind with <em>OIM</em>) and it sure looked like a good time! Riley set up a point system for georeferenced content, complete with the option to challenge the quality of another team&rsquo;s work to reduce their score.</p>\n<p><img src=\"https://mradamcox.github.io/theme/img/1-crop.jpg\" alt=\"\"></p>\n<p>In addition to points for georeferencing, teams also had to do some scavenger-hunting across the 1905 Richmond map to answer questions like <em>&ldquo;Across N. 11th St. from City Hall is where you can find the ________ HOTEL&rdquo;</em> , or <em>&ldquo;Just</em> _east of Shockoe Slip is where you can find _______ COFFEE CO.&rdquo;</p>\n<p><img src=\"https://mradamcox.github.io/theme/img/3-crop.jpg\" alt=\"\"></p>\n<p>Congrats to the big winners (and some familiar names from the platform!!): <em>ibrahimalkaser</em>, <em>samyoga</em>, <em>bakeunsu</em>, and <em>willguy</em>.</p>\n<h2 id=\"georeference-a-thons-of-past\">Georeference-a-thons of Past</h2>\n<p>Finally, we owe a big and belated thank you to everyone that showed up to the events we did with HistoryForge at Second Line Brewing in New Orleans, this past August. It was unexpectedly great to do two weeks in a row because it felt like we built some momentum, even though there were very few people who came both days.</p>\n<p><img src=\"https://mradamcox.github.io/theme/img/IMG_6231-crop.jpg\" alt=\"\"></p>\n<p>All together, we had about 25 people attend, made it through the entirety of <a href=\"https://oldinsurancemaps.net/map/sanborn03376_010\">New Orleans, 1908, Vol. 2</a>, and <em>much</em> of <a href=\"https://oldinsurancemaps.net/map/sanborn03376_011\">Vol. 3</a> as well. Once these mosaics are completed and trimmed, we&rsquo;ll be able to add them to the local HistoryForge <a href=\"https://sela.historyforge.net/forge\">project</a>, to help with trascribing and mapping historical US Census documents.</p>\n<p>\\r\\n</p>\n<h2 id=\"presentations-at-nacis-in-october\">Presentation(s) at NACIS in October</h2>\n<p>\\r\\n</p>\n<p>Last month I traveled to the annual North American Cartographic Information Society meeting, this year in Tacoma, WA, and presented about <em>OldInsuranceMaps.net.</em> The video of the talk is now on YouTube: <a href=\"https://www.youtube.com/watch?v=DhRrZgCedqk\">Handling Complex Content within Georeferenced Historical Atlases</a>. You can also flip through the slides here: <a href=\"https://tiny.cc/nacis2024-ac\">tiny.cc/nacis2024-ac</a>. Even though it sounds pretty boring, this was extremely gratifying to put together and present, because it distills what I think is most unique about the platform.</p>\n<p>As a lucky bonus, Riley Champine from the URichmond DSL presented in the same session right after me, so I encourage you to watch his talk as well: <a href=\"https://www.youtube.com/watch?v=SK_2n5QStBs\">Using Old Maps for New Insights on America’s Cities</a>. He discusses updates to the lab&rsquo;s <em>Mapping Inequality</em> project, and near the end has a fantastic demo of their new project <em>Fires of Industry</em>, that is based on the monumental georeferencing effort their students are carrying out using <em>OldInsuranceMaps.net</em>. I heard a few &ldquo;wows&rdquo; in the audience when he showed this.</p>\n<h2 id=\"finally-data-agreement\">Finally: Data Agreement</h2>\n<p>As I have written in this newsletter before, I have been working toward being more precise about what happens with user-contributed data on OldInsuranceMaps.net. I have now added a <a href=\"https://oldinsurancemaps.net/data-agreement\">Data Agreement</a>, that states the following (in summary—see linked page for more details):</p>\n<p><em>Two core goals of</em> OldInsuranceMaps.net <em>are:</em></p>\n<ul>\n<li><em>To facilitate historical map georeferencing and mosaicking in a streamlined and participatory environment</em></li>\n<li><em>To create publicly accessible datasets that can be used by anyone for any purpose</em></li>\n</ul>\n<p><em>To that end,</em> OldInsuranceMaps.net <em>collects user-contributed georeferencing data, and <strong>insofar as any of this data is copyrightable, users agree that their copyright is waived and <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a> license is applied</strong>.</em></p>\n<p><em>The platform also records the georeferencing-related actions that a user takes while interacting with it, and uses <a href=\"https://plausible.io/privacy-focused-web-analytics\">Plausible Analytics</a> to collect general statistics about visitors to the site. No private user information is collected.</em></p>\n<p>I will reiterate as I have said before: <strong>If you have already created content on the site, but would <em>not</em> like to have it available under these conditions: Please get back to me and I will help you download it and will then remove it.</strong> No problem at all! The files should be very easy to self-host.</p>\n<hr>\n<p>Thanks, as always for reading, and hope to see some of you next week!</p>\n<p>Adam</p>\n",
				
				"date_published": "2024-11-15T16:30:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2024/11/15/gis-day-events-nacis-data/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2024/11/15/handling-complex-content-within-georeferenced/",
				"title": "\"Handling Complex Content within Georeferenced Historical Atlases\" ",
				"content_html": "<p>Last month I traveled to the annual North American Cartographic Information Society meeting, this year in Tacoma, WA, and presented about <a href=\"http://OldInsuranceMaps.net\"><em>OldInsuranceMaps.net</em></a><em>.</em> The video of the talk is now on YouTube: <a href=\"https://www.youtube.com/watch?v=DhRrZgCedqk\">Handling Complex Content within Georeferenced Historical Atlases</a>. You can also flip through the slides here: <a href=\"http://tiny.cc/nacis2024-ac\">tiny.cc/nacis2024-ac</a>. Even though it sounds pretty boring, this was extremely gratifying to put together and present, because it distills what I think is most unique about the platform.</p>\n<p><strong>Abstract:</strong></p>\n<blockquote>\n<p>While georeferencing a single map is an easy one-off process, applying the work across a whole atlas (or multi-volume set) is a challenging task&ndash;especially when pages have multiple insets and the atlas contains more than one category of maps. How do you structure this work, and create cohesive output? This presentation will describe the novel hierarchical approach within <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a>, a crowdsourced web georeferencing platform designed around the complexities of Sanborn fire insurance maps. Facilitating the creation of seamless mosaics from this collection has resulted in a robust, abstract workflow that could be applied to any other maps or collections as well.</p>\n</blockquote>\n<p>I made a bunch of diagrams for the presentation using <a href=\"https://d2lang.com\">d2</a>, and here is my favorite one:</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/new-iberia-1885-full-workflow.skwkkw2n-2vyhnd.webp\" width=\"600\" height=\"623\" alt=\"\">\n<p>As a lucky bonus, Riley Champine from the URichmond DSL presented in the same session right after me, so I encourage you to watch his talk as well: <a href=\"https://www.youtube.com/watch?v=SK_2n5QStBs\">Using Old Maps for New Insights on America’s Cities</a>. He discusses updates to the lab&rsquo;s <em>Mapping Inequality</em> project, and near the end has a fantastic demo of their new project <em>Fires of Industry</em>, that is based on the monumental georeferencing effort their students are carrying out using <a href=\"http://OldInsuranceMaps.net\"><em>OldInsuranceMaps.net</em></a>. I heard a few &ldquo;wows&rdquo; in the audience when he showed this.</p>\n",
				
				"date_published": "2024-11-14T19:00:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2024/11/14/handling-complex-content-within-georeferenced/",
				"tags": ["presentations"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2024/09/13/newsletter-fall/",
				"title": "Newsletter: Fall 2024",
				"content_html": "<h2 id=\"upcoming-georeference-a-thons\">Upcoming Georeference-a-thons!</h2>\n<p>Here in New Orleans we have two public Georeference-a-thons <strong><em>right around the corner!</em></strong> On the next two Tuesdays we will be gathering at <a href=\"https://www.secondlinebrewing.com/\">Second Line Brewing</a> (as before) from 6:30 to 8:30pm to georeference more New Orleans Sanborn maps for <a href=\"https://sela.historyforge.net/forge\"><em>HistoryForge.</em></a> We did this last summer, and the resulting work has been integrated directly into the <em>HistoryForge</em> platform (as you can see in the link, click the map icon). Having the Sanborn map layers is very helpful for tracking down old US Census records, and makes exploring the city&rsquo;s history even more engaging. Hope to see you there!</p>\n<p><img src=\"https://mradamcox.github.io/theme/img/flyer.jpg\" alt=\"Flyer\"></p>\n<p><a href=\"https://docs.google.com/forms/d/e/1FAIpQLScGrN_XTk9u0CrmXXTPjvA4Qgfxjuxhpq227oF1hBe9MP9xew/viewform\">RSVP Form</a></p>\n<p>A big thank you to Elizabeth from <em>HistoryForge</em> for making the flyer!</p>\n<h2 id=\"cc-licensing-update\">CC licensing update</h2>\n<p>Last winter, I <a href=\"https://oldinsurancemaps.net/news/2023-year-in-review/\">wrote</a> about my interest in applying a <a href=\"https://creativecommons.org/licenses/by/4.0/\">CC BY</a> license to the work that people have completed on <em>OldInsuranceMaps.net</em>. Since then, I have done much more research on the topic by reaching out to people with experience in other crowdsourcing applications, as well as copyright experts within university libraries. Overall, I&rsquo;ve found that <a href=\"https://creativecommons.org/public-domain/cc0/\"><strong>CC0</strong></a> <strong>will be a better fit for contributed content on the site,</strong> which would place individual contributions &ldquo;as completely as possible in the public domain,&rdquo; to borrow Creative Commons language. <em>CC0</em> is the most permissive Creative Commons license, and will allow the use of map content for research, personal, or commercial use. <em>CC BY</em> would require that attribution be given whenever content is used elsewhere, which sounds good in theory but would bring a level of enforcement and legal burden that I am not able to meet in practice.</p>\n<p>\\r\\n</p>\n<p>More importantly, however, I&rsquo;ve learned that the data created through the georeferencing process is unlikely to be considered copyrightable in the first place, because the cut-lines, ground control points, and masks are effectively recordation of facts (&ldquo;this is the boundary of an inset&rdquo;, &ldquo;this pixel coordinate corresponds to that lat/long&rdquo;), and facts cannot be copyrighted. So the language I will be adopting soon will be along the lines of:</p>\n<p><em>&ldquo;To the extent that contributed content on OldInsuranceMaps.net can be considered copyrightable, a CC0 license is applied.&quot;</em></p>\n<p>As before: If you are not comfortable with the work you have contributed being available through such a license, please get in touch with me ASAP. I will happily help you download/save your work elsewhere and remove it from the site.</p>\n<h2 id=\"other-recent-work\">Other Recent Work&hellip;</h2>\n<p>I have been working a lot in the past few weeks on a big re-modeling project within the database, which I hope to have fully implemented by next week. (But it has been a complex process so we&rsquo;ll just see how it goes&hellip;) You can read these <a href=\"https://github.com/ohmg-dev/OldInsuranceMaps/pull/212\">pull request notes</a> for more details on the changes. Some of the outward improvements that this will make possible are:</p>\n<ul>\n<li>Grouping mosaics from multiple volumes for better display in the viewer (currently this is kind of a mess for cities with many volumes, like the 10 new ones in <a href=\"https://oldinsurancemaps.net/viewer/new-orleans-la/?sanborn03376_034=100&amp;sanborn03376_032=100&amp;sanborn03376_031=100&amp;sanborn03376_030=100&amp;sanborn03376_029=100&amp;sanborn03376_028=100&amp;sanborn03376_027=100&amp;sanborn03376_026=100&amp;sanborn03376_025=100&amp;sanborn03376_024=100&amp;sanborn03376_005=100&amp;sanborn03376_004=100&amp;sanborn03376_003=100&amp;sanborn03376_002=100&amp;sanborn03376_001=100#/center/-90.0618,29.9627\">New Orleans</a> from the 1951 edition)</li>\n<li>A data model that more closely reflects the structure of the <a href=\"https://preview.iiif.io/api/georef/extension/georef/\">IIIF Georeference Extension</a>, laying groundwork for its eventual adaption within the platform</li>\n<li>Complete (well, almost complete) removal of the dependency on LOC&rsquo;s map collection&ndash;a big step toward making the system more generic overall.</li>\n</ul>\n<p>This is the topic I&rsquo;ll be <a href=\"https://nacis2024.sched.com/event/1gtkD/making-connections-session-2-track-3\">presenting about at NACIS</a> next month in Tacoma, so if you are attending the meeting please say hello! Even better, Riley Champine from the University of Richmond&rsquo;s Digital Scholarship Lab will be in the same session, talking about their work at the DSL, and in part their use of <em>OldInsuranceMaps.net.</em> I think these talks will be recorded, so I&rsquo;ll be sure to pass links to them on eventually.</p>\n<p>All the best,</p>\n<p>Adam</p>\n",
				
				"date_published": "2024-09-13T14:00:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2024/09/13/newsletter-fall/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2024/06/24/newsletter-spring-and-midsummer-updates/",
				"title": "Newsletter: Spring and Mid-Summer Updates 2024",
				"content_html": "<p>Hello! The last newsletter I sent out was <em><a href=\"https://oldinsurancemaps.net/news/2023-year-in-review/\">over half a year ago</a>,</em> so a lot has happened in the meantime (including: I got married!). I&rsquo;ll get to most of the updates here, but hopefully will be able to follow-up sooner than later with more. Before going further, I&rsquo;d like to welcome the 50+ new folks who have registered since the year started. Looking forward to hearing and seeing what you work on! Which is a good segue to the next point&hellip;</p>\n<h3 id=\"we-have-a-new-community-forum\">We have a new Community Forum!</h3>\n<p>Jeff Meyer at OpenHistoricalMap suggested that we make a dedicated <a href=\"https://forum.openhistoricalmap.org/c/oldinsurancemaps/13\">category for OldInsuranceMaps.net</a> within the existing OHM forum. This provides a permanent, external location to have discussions and post about what people are working on. So, please don&rsquo;t be shy, let us know what cities you are georeferencing (or have worked on in the past :)). Moreover, do you have a city in mind but haven&rsquo;t been able to georeference it yourself? Use the forum to let us know, maybe someone else would like to work on it with you. All questions and comments welcome!</p>\n<h3 id=\"recent-publications-about-oldinsurancemapsnet\">Recent publications about OldInsuranceMaps.net</h3>\n<ul>\n<li><a href=\"https://waml.org/waml-information-bulletin/volume-55-number-2/piloting-a-sanborn-map-georef-a-thon\">Piloting a Sanborn Map Georef-a-thon for GIS Day 2023</a>, WAML Information Bulletin, Western Association of Map Libraries. 2024. Josh Sadvari and Michelle Hooper\n<ul>\n<li>Josh and Michelle hosted a Georef-a-thon last fall at OSU Libraries using OldInsuranceMaps.net, and wrote this great piece about how it went (spoiler: really well!).</li>\n</ul>\n</li>\n<li><a href=\"https://southrichmondnews.com/2024/02/12/scroll-though-time-with-the-sanborn-fire-maps/\">Scroll through Time with the Sanborn Fire Insurance Maps</a>, South Richmond News. February 12, 2024. John M. and Riley Champine\n<ul>\n<li>This article in the South Richmond News highlights historical maps on OldInsuranceMaps.net in Richmond, VA, georeferencing work completed by the URichmond DSL.</li>\n</ul>\n</li>\n<li><a href=\"https://doi.org/10.1080/15420353.2024.2326812\">Toward a Georeferencing Commons: A Crowdsourcing Case Study and the Creation of OldInsuranceMaps.Net</a> (<a href=\"https://hcommons.org/deposits/item/hc:64725/\">link for open access version</a>), Journal of Map &amp; Geography Libraries, March 2024. Adam Cox.\n<ul>\n<li>Finally, I&rsquo;ve created an article-length abridgment of my MS thesis, which was the beginning of this whole project.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"stats\">Stats!</h3>\n<ul>\n<li>220 cities have at least <em>some</em> maps georeferenced</li>\n<li>550 maps (or &ldquo;volumes&rdquo;), completed or in-progress across all cities</li>\n<li>17,500 individual layers within these maps</li>\n<li>230 registered users</li>\n</ul>\n<p>So much of this content has been created by staff and students at the URichmond DSL lab. They are doing fantastic work! This must be the largest Sanborn map georeferencing effort that has been undertaken in a public platform, by far.</p>\n<h3 id=\"other-new-things\">Other new things</h3>\n<ul>\n<li>New About website and documentation location <a href=\"https://about.oldinsurancemaps.net\">https://about.oldinsurancemaps.net</a></li>\n<li>New Github organization for better repository management/namespacing: <a href=\"https://github.com/ohmg-dev\">https://github.com/ohmg-dev</a></li>\n<li>New content about the underlying workflow structure: <a href=\"https://www.ohmg.dev/concepts\">https://www.ohmg.dev/concepts</a></li>\n</ul>\n<hr>\n<p>Until next time,</p>\n<p>Adam</p>\n",
				"summary": "Hello! The last newsletter I sent out was over half a year ago so a lot has happened in the meantime (including: I got married!). I’ll get to most of the updates here, but hopefully will be able to follow-up sooner than later with more. Before going further, I’d like to welcome the 50+ new folks who have registered since the year started. Looking forward to hearing and seeing what you work on! Which is a good segue to the next point…",
				"date_published": "2024-06-24T08:24:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2024/06/24/newsletter-spring-and-midsummer-updates/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2024/06/23/piloting-a-sanborn-map-georefathon/",
				"title": "\"Piloting a Sanborn Map Georef-a-thon for GIS Day 2023\"",
				"content_html": "<p>Last November, Josh Sadvari and Michelle Hooper hosted a Georef-a-thon at The Ohio State University Libraries using <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a>, and wrote this detailed piece about how they prepared for the event, how the platform worked for them, and what kind of engagement their participants got from the experience.</p>\n<p><a href=\"https://waml.org/waml-information-bulletin/volume-55-number-2/piloting-a-sanborn-map-georef-a-thon/\">Piloting a Sanborn Map Georef-a-thon for GIS Day 2023</a>, WAML Information Bulletin, Western Association of Map Libraries. 2024. Josh Sadvari and Michelle Hooper</p>\n<p>Some nice quotes from the article, that illustrate how the event was able to expand knowledge and appreciation of historical maps:</p>\n<blockquote>\n<p>Very few georef-a-thon participants indicated they had previously used or even heard of Sanborn maps when asked this question during the introduction, which reinforces how such an activity can help in creating awareness of the potential uses of this collection.</p>\n</blockquote>\n<blockquote>\n<p>The <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a> platform provides a low barrier entry point for teaching spatial and data literacy concepts through georeferencing and engaging students in the “process” of geospatial data, illustrating a standalone educational value that was perhaps not envisioned as a specific outcome during the platform’s conceptualization and development but could be one nonetheless</p>\n</blockquote>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/piloting-article-headline.webp\">\n",
				
				"date_published": "2024-06-23T18:00:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2024/06/23/piloting-a-sanborn-map-georefathon/",
				"tags": ["writing","collabs"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2023/12/31/year-in-review/",
				"title": "Newsletter: 2023 Year in Review",
				"content_html": "<p>Hello everyone and welcome to the final newsletter of 2023! It was last January that I made an announcement letting you all know we were back in business here, and since then a lot of wonderful things have come from the project. First, a couple of recent things I haven&rsquo;t yet told you about&hellip;</p>\n<p><em>As always, you can reply with comments or questions directly to this email (it won&rsquo;t be a &ldquo;reply all&rdquo;!), or <a href=\"https://oldinsurancemaps.net/news/\">view past newsletters here</a>.</em></p>\n<h2 id=\"on-development-seeds-blog\">On Development Seed&rsquo;s Blog</h2>\n<p>Over the course of the year I worked with Kiri Carini and Sanjay Bhangar at Development Seed to create a post about OldInsuranceMaps.net, and we finally released it on Dec. 1st: <a href=\"http://devseed.com/blog/2023-12-01-spotlight-oldinsurancemaps\">Open Source Spotlight: Old Insurance Maps</a>.  This year I completed a transition to using DevSeed&rsquo;s open source software, TiTiler, to serve all raster layers and because it is typically used for tiling satellite imagery, they were excited to see my use of it for historical maps. The blog post is one of the more detailed things I&rsquo;ve written about the tech side of the platform, I encourage you to check it out!</p>\n<h2 id=\"on-maps-mania-blog\">On Maps Mania Blog</h2>\n<p>A few days after that, the <a href=\"https://googlemapsmania.blogspot.com/\">Maps Mania</a> blog (which I have followed for a while and I highly recommend to anyone who likes maps) also featured OldInsuranceMaps.net in a nice post, <a href=\"https://googlemapsmania.blogspot.com/2021/02/historical-sanborn-maps-of-america.html\">Historical Sanborn Maps of America</a>. Very happy for this exposure, though there&rsquo;s nothing to make you feel like you need to improve a home page like all of a sudden having a hundred new people look at it :/.</p>\n<h2 id=\"boring-but-very-important-upcoming-cc-by-license-implementation\">Boring But Very Important: Upcoming CC BY License Implementation</h2>\n<p>As more institutions have started using the platform to georeference content, it&rsquo;s time to formalize licensing for content that is created on the site. At its heart, this is a collaborative crowdsourcing platform that facilitates the transformation of, access to, and public engagement with historical map content. With this in mind, <strong>I plan to implement the <a href=\"https://creativecommons.org/licenses/by/4.0/\">CC BY 4.0</a> license for all georeferenced content that is created on OldInsuranceMaps.net</strong>. Creative Commons licenses offer a formal way to ensure that content is shareable, and the BY extension requires only that attribution be given when the content is used in other contexts. When I finalize this decision with a statement on the website, I&rsquo;ll provide more info on how to give credit (probably something like &ldquo;OldInsuranceMaps.net contributors&rdquo;, a la OpenStreetMap).</p>\n<p>Once implemented, the CC BY 4.0 license would be applied to the following (existing and future) content on OldInsuranceMaps.net:</p>\n<ul>\n<li><strong>User input data: cut-lines, ground control points, and trim mask coordinates.</strong></li>\n<li><strong>Geospatial datasets derived from this data: georeferenced layers and full trimmed mosaics.</strong></li>\n</ul>\n<p>Generally, this content is all free and downloadable already, so I see the CC BY 4.0 license as a way to formalize what has already been in place for almost 2 years now.</p>\n<p><em>That said:</em> If you have georeferenced maps on OldInsuranceMaps.net and you do not want this license to be applied to your work, then I have absolutely no problem with helping you download everything you&rsquo;ve created and then I will remove it from the site.</p>\n<p><em>Finally:</em> If you have experience with CC licenses and/or licensing for crowdsourced content, I would love to hear your thoughts on this! Just reply directly to this email.</p>\n<h2 id=\"2023-stats-and-summary\">2023 Stats and Summary</h2>\n<p>Now that that is out of the way, back to the year-in-review with some stats and graphs. Over the last year, OldInsuranceMaps.net has received ~5,000 unique visitors. Most importantly, the trendline is clearly going up (spikes correspond to newsletters, georeferencing-events, etc.).</p>\n<p><img src=\"https://mradamcox.github.io/theme/img/plausible-2023.png\" alt=\"\"></p>\n<p>Visitorship is one thing, but what about the georeferencing?? Overall, 4,500 new layers have been georeferenced this year.</p>\n<p><img src=\"https://mradamcox.github.io/theme/img/2023-sessions.png\" alt=\"\"></p>\n<p>Of course, a huge proportion of that is the incredible effort by students and staff at the University of Richmond DSL starting in September (this work continues). We&rsquo;ll have much more about this effort and what it is achieving in the future. For now, I&rsquo;ll just shoutout Riley for managing this effort, and to the top-notch georeferencers involved:</p>\n<p>wendyle, samyoga, nayers, 10varun17, jattys, JacksonSB, Shelby_m_richards, mekletb, amara017, mirandam, AYAH, and NyKyaSM (sorry if I missed anyone!).</p>\n<p>But there have also been a lot of great independent efforts over the last year that I&rsquo;d like to highlight. For example:</p>\n<ul>\n<li>Nolan in <a href=\"https://oldinsurancemaps.net/viewer/des-moines-ia?utm_source=newsletter12\">Des Moines, IA</a></li>\n<li>Kevin in <a href=\"https://oldinsurancemaps.net/viewer/macon-bibb-county-ga?utm_source=newsletter12\">Macon, GA</a> (and many other nearby towns)</li>\n<li>Tod in <a href=\"https://oldinsurancemaps.net/viewer/salt-lake-city-ut?utm_source=newsletter12\">Salt Lake City, UT</a></li>\n<li>tagifford in <a href=\"https://oldinsurancemaps.net/viewer/schenectady-ny?utm_source=newsletter12\">Schenectady, NY</a></li>\n<li>Ian in <a href=\"https://oldinsurancemaps.net/viewer/st-paul-mn?utm_source=newsletter12\">St. Paul, MN</a></li>\n<li>Jason in <a href=\"https://oldinsurancemaps.net/viewer/essex-county-nj/?utm_source=newsletter12\">Essex County, NJ</a></li>\n<li>Pete in <a href=\"https://oldinsurancemaps.net/viewer/menlo-park-ca?utm_source=newsletter12\">Menlo Park, CA</a></li>\n</ul>\n<p>I know there are a handful of other folks who have request maps be added but haven&rsquo;t gotten a chance to work on them yet, so look out for much more in the coming year!</p>\n<h3 id=\"georef-a-thons\">Georef-a-thons</h3>\n<p>We held two small events at Second Line Brewing in New Orleans this past summer, especially to support HistoryForge&rsquo;s use of the site for their New Orleans project (more HistoryForge collaboration coming next year). We created a <a href=\"https://oldinsurancemaps.net/viewer/new-orleans-la/?sanborn03376_005=100#/center/-90.0725,29.9686/zoom/15\">beautiful mosaic</a> of a 1896 New Orleans volume (and had a few beers too).</p>\n<p>Then, in November, Josh and Michelle at Ohio State University held a GIS Day event where they had 30 people participate and georeferenced almost 200 sheets of Columbus maps in 4 hours! I&rsquo;ll be able to share a nice write-up in the next few months, and they already have another event planned for <a href=\"https://library.osu.edu/events/international-love-data-week-2024\">International Love Data Week</a>.</p>\n<h2 id=\"thanks-for-a-great-year\">Thanks for a great year!</h2>\n<p>Finally, a huge thank you to people this year that helped out, gave advice, or got involved some way or another, in addition to all of the contributors listed above&hellip; Jeff Meyers at OpenHistoricalMap; Eve Snyder and Elizabeth Williams at HistoryForge; Rob Nelson and Riley Champine at University of Richmond DSL; and Josh Sadvari at OSU Libraries&hellip; to name just a few. The project owes much to you all!</p>\n<p>It&rsquo;s been a great year, and I have no doubt 2024 will see a huge expansion of the usership, engagement, and georeferencing capabilities on the platform.</p>\n<p>Happy New Year!</p>\n<p>Adam</p>\n<p>p.s. I&rsquo;ve just run out of time and space to describe the tech updates that the past year has seen&hellip; if that interests you, see the DevSeed blog post linked above.</p>\n",
				"summary": "Hello everyone and welcome to the final newsletter of 2023! It was last January that I made an announcement letting you all know we were back in business here, and since then a lot of wonderful things have come from the project. First, a couple of recent things I haven’t yet told you about…",
				"date_published": "2023-12-31T14:39:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2023/12/31/year-in-review/",
				"tags": ["newsletter"]
			},
			{
				"id": "http://oldinsurancemaps.micro.blog/2023/12/10/dev-seed-open-source-spotlight/",
				"title": "Dev Seed: Open Source Spotlight - Old Insurance Maps",
				"content_html": "<p>Working with Kiri and Sanjay from Development Seed, we put together this post for Dev Seed&rsquo;s blog: <a href=\"https://developmentseed.org/blog/2023-12-01-spotlight-oldinsurancemaps/\">Open Source Spotlight - Old Insurance Maps.</a> This came about because Kiri saw my presentation at FOSS4G Southeast in Nashville last year, where I described how I had reworked <a href=\"http://OldInsuranceMaps.net\">OldInsuranceMaps.net</a> to use <a href=\"https://developmentseed.org/titiler/\">TiTiler</a> (open source software that Dev Seed created and maintains) for dynamic raster tiling, replacing GeoServer which had been incorporated into the platform from the beginning.</p>\n<p>It was very satisfying to put this piece together, and get to talk more about the tech stack that makes OldInsuranceMaps work.</p>\n<img src=\"https://cdn.uploads.micro.blog/280698/2025/devseed-post-snippet.webp\">\n",
				
				"date_published": "2023-12-09T19:00:00-05:00",
				"url": "https://blog.oldinsurancemaps.net/2023/12/09/dev-seed-open-source-spotlight/",
				"tags": ["tech","writing"]
			}
	]
}
