diff --git a/src/main/python/gov/usgs/earthquake/nshmp/netcdf/database/database.py b/src/main/python/gov/usgs/earthquake/nshmp/netcdf/database/database.py
index 1a450ec45497653a0eacd7c9d1b0a945c8104b9f..04af6b6a21ab381dfbacadd05f16ec238fad2f45 100644
--- a/src/main/python/gov/usgs/earthquake/nshmp/netcdf/database/database.py
+++ b/src/main/python/gov/usgs/earthquake/nshmp/netcdf/database/database.py
@@ -169,11 +169,12 @@ class Database:
         Download files defined in catalog.yml for a NSHM
         """
 
-        for item in items:
-            if item["id"] == "LOCAL":
+        for _item in items:
+            item: dict = _item
+            if item.get("id") == "LOCAL":
                 self._get_local_files(nshm=nshm, nshm_dir=nshm_dir, item=item)
             else:
-                response = self._session.get_item(itemid=item["id"])
+                response = self._session.get_item(itemid=item.get("id"))
                 database_files = self._session.get_item_file_info(item=response)
                 self._get_files(
                     nshm=nshm, nshm_dir=nshm_dir, item=item, database_files=database_files
@@ -214,19 +215,22 @@ class Database:
         """
         database_info: list[DatabaseInfo] = []
 
-        for catalog in catalogs:
-            items = catalog["items"]
-            nshm_str = catalog["nshm"]
-            description = catalog["description"]
+        for _catalog in catalogs:
+            catalog: dict = _catalog
+            items = catalog.get("items")
+            nshm_str = catalog.get("nshm")
+            description = catalog.get("description")
             nshm = Nshm.from_string(nshm_str=nshm_str)
 
             if self.inputs.has_nshm(nshm=nshm) is True or self.inputs.all is True:
                 metadata: list[ScienceBaseMetadata] = []
 
-                for item in items:
+                for _item in items:
+                    item: dict = _item
                     metadata.append(
                         ScienceBaseMetadata(
-                            science_base_version=item["science_base_version"], url=item["url"]
+                            science_base_version=item.get("science_base_version"),
+                            url=item.get("url"),
                         )
                     )
 
@@ -236,6 +240,7 @@ class Database:
                         description=description,
                         data_path=nshm_dir,
                         database_directory=self.inputs.db_dir,
+                        map_file=catalog.get("map_file", None),
                         nshm=nshm,
                         science_base_metadata=metadata,
                     )
@@ -257,7 +262,9 @@ class Database:
         else:
             print(f"File ({Path(str(path)[0:-4]).name}) already exists, skipping")
 
-    def _get_files(self, nshm: Nshm, nshm_dir: Path, item: dict, database_files: list) -> None:
+    def _get_files(
+        self, nshm: Nshm, nshm_dir: Path, item: dict, database_files: list[dict]
+    ) -> None:
         """Get files
 
         Find matching files from config.yml to database files
@@ -268,21 +275,25 @@ class Database:
 
         with console.status(status_msg, spinner="pong") as status:
             with ThreadPoolExecutor() as executor:
-                if item["files"] == "ALL":
-                    for nshm_file in database_files:
+                if item.get("files") == "ALL":
+                    for _nshm_file in database_files:
+                        nshm_file: dict = _nshm_file
                         futures.append(
                             executor.submit(
                                 self._get_file,
                                 nshm=nshm,
-                                nshm_file=Path(nshm_file["name"]),
+                                nshm_file=Path(nshm_file.get("name")),
                                 nshm_dir=nshm_dir,
-                                url=nshm_file["url"],
+                                url=nshm_file.get("url"),
                             )
                         )
                 else:
-                    for nshm_file in item["files"]:
+                    for _nshm_file in item.get("files"):
+                        nshm_file: dict = _nshm_file
                         database_file = list(
-                            filter(lambda db_file: (db_file["name"] == nshm_file), database_files)
+                            filter(
+                                lambda db_file: (db_file.get("name") == nshm_file), database_files
+                            )
                         )
                         if len(database_file) == 0:
                             id = item["id"]
@@ -294,7 +305,7 @@ class Database:
                                 nshm=nshm,
                                 nshm_file=Path(nshm_file),
                                 nshm_dir=nshm_dir,
-                                url=database_file.pop()["url"],
+                                url=database_file.pop().get("url"),
                             )
                         )
             status.stop()