Skip to content

Commit

Permalink
added ParagraphStyleValues domain to Create Database and A La Carte GeMS
Browse files Browse the repository at this point in the history
  • Loading branch information
ethoms-usgs committed May 9, 2024
1 parent 8ea786a commit f1edd4f
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 13 deletions.
47 changes: 36 additions & 11 deletions Scripts/GeMS_ALaCarte.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
from pathlib import Path
import sys

versionString = "GeMS_ALaCarte.py, version of 10/5/23"
versionString = "GeMS_ALaCarte.py, version of 5/8/24"
rawurl = "https://raw.githubusercontent.com/DOI-USGS/gems-tools-pro/master/Scripts/GeMS_ALaCarte.py"
guf.checkVersion(versionString, rawurl, "gems-tools-pro")

Expand Down Expand Up @@ -90,10 +90,6 @@ def eval_prj(prj_str, fd):
if any([x in fd for x in unk_fds]):
# create 'UNKNOWN' spatial reference
sr = ""
# sr_empty = arcpy.FromWKT("POINT EMPTY").spatialReference
# sr_str = sr_empty.exportToString()
# sr = arcpy.SpatialReference()
# sr.loadFromString(sr_str)
else:
sr = arcpy.SpatialReference()
sr.loadFromString(prj_str)
Expand All @@ -120,17 +116,31 @@ def conf_domain(gdb):
l_domains = [d.name for d in arcpy.da.ListDomains(gdb)]
if not "ExIDConfidenceValues" in l_domains:
conf_vals = gdef.DefaultExIDConfidenceValues
arcpy.AddMessage("adding domain ExIDConfidenceValues")
arcpy.AddMessage("Adding domain ExIDConfidenceValues")
arcpy.CreateDomain_management(
gdb, "ExIDConfidenceValues", "", "TEXT", "CODED", "DUPLICATE"
)
for val in conf_vals:
arcpy.AddMessage(f"adding value {val[0]}")
arcpy.AddMessage(f" Adding value {val[0]}")
arcpy.AddCodedValueToDomain_management(
gdb, "ExIDConfidenceValues", val[0], val[0]
)


def style_domain(gdb):
l_domains = [d.name for d in arcpy.da.ListDomains(gdb)]
if not "ParagraphStyleValues" in l_domains:
arcpy.AddMessage("Adding domain ParagraphStyleValues")
arcpy.CreateDomain_management(
gdb, "ParagraphStyleValues", "", "TEXT", "CODED", "DUPLICATE"
)
for val in gdef.ParagraphStyleValues:
arcpy.AddMessage(f" Adding value {val}")
arcpy.AddCodedValueToDomain_management(
gdb, "ParagraphStyleValues", val, val
)


def required(value_table):
found = False
# collect the values from the valuetable
Expand Down Expand Up @@ -161,7 +171,7 @@ def add_geomaterial(db, out_path, padding):
if is_gdb:
l_domains = [d.name for d in arcpy.da.ListDomains(db)]
if not "GeoMaterials" in l_domains:
arcpy.AddMessage(f"{padding}adding domain GeoMaterials")
arcpy.AddMessage(f"{padding}Adding domain GeoMaterials")
arcpy.TableToDomain_management(
geomat_csv,
"GeoMaterial",
Expand All @@ -173,12 +183,12 @@ def add_geomaterial(db, out_path, padding):
# GeoMaterialConfidenceValues
if not "GeoMaterialConfidenceValues" in l_domains:
conf_vals = gdef.GeoMaterialConfidenceValues
arcpy.AddMessage(f"{padding}adding domain GeoMaterialConfidenceValues")
arcpy.AddMessage(f"{padding}Adding domain GeoMaterialConfidenceValues")
arcpy.CreateDomain_management(
db, "GeoMaterialConfidenceValues", "", "TEXT", "CODED", "DUPLICATE"
)
for val in conf_vals:
arcpy.AddMessage(f"{padding} adding value {val}")
arcpy.AddMessage(f"{padding} Adding value {val}")
arcpy.AddCodedValueToDomain_management(
db, "GeoMaterialConfidenceValues", val, val
)
Expand Down Expand Up @@ -212,6 +222,7 @@ def process(db, value_table):

if is_gdb:
conf_domain(db)
style_domain(db)

# feature dataset
fd_tab = ""
Expand Down Expand Up @@ -262,7 +273,6 @@ def process(db, value_table):
fc_fields = [f.name for f in arcpy.ListFields(fc_path)]
field_defs = gdef.startDict[template]
for fDef in field_defs:
dom_spaces = ""
if not fDef[0] in fc_fields:
try:
arcpy.AddMessage(f"{fd_tab}{fc_tab}Adding field {fDef[0]}")
Expand Down Expand Up @@ -324,6 +334,21 @@ def process(db, value_table):
arcpy.AddMessage(
f"{fd_tab}{fc_tab}{fld_tab}GeoMaterials domain assigned to field GeoMaterial"
)

if fDef[0] == "ParagraphStyle":
try:
this_field = arcpy.ListFields(fc_path, fDef[0])[0]
if not this_field.domain == "ParagraphStyleValues":
arcpy.AssignDomainToField_management(
str(fc_path), fDef[0], "ParagraphStyleValues"
)
arcpy.AddMessage(
f"{fd_tab}{fc_tab}{fld_tab}Domain ParagraphStyleValues assigned to field {fDef[0]}"
)
except:
arcpy.AddWarning(
f"Failed to assign domain ParagraphStyleValues to field {fDef[0]}"
)
# except:
# arcpy.AddWarning(
# f"Failed to assign domain GeoMaterials to field GeoMaterial"
Expand Down
21 changes: 19 additions & 2 deletions Scripts/GeMS_CreateDatabase.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
tableDict,
GeoMaterialConfidenceValues,
DefaultExIDConfidenceValues,
IDLength,
ParagraphStyleValues,
)
from GeMS_utilityFunctions import *
import copy

versionString = "GeMS_CreateDatabase.py, version of 10/5/23"
versionString = "GeMS_CreateDatabase.py, version of 5/8/24"
rawurl = "https://raw.githubusercontent.com/DOI-USGS/gems-tools-pro/master/Scripts/GeMS_CreateDatabase.py"
checkVersion(versionString, rawurl, "gems-tools-pro")

Expand Down Expand Up @@ -375,6 +375,23 @@ def main(thisDB, coordSystem, nCrossSections):
except:
addMsgAndPrint(arcpy.GetMessages())

if table == "DescriptionOfMapUnits":
# ParagraphStyleValues domain
arcpy.AddMessage(" Creating domain ParagraphStyleValues")
arcpy.CreateDomain_management(
thisDB, "ParagraphStyleValues", "", "TEXT", "CODED", "DUPLICATE"
)
for val in ParagraphStyleValues:
arcpy.AddCodedValueToDomain_management(
thisDB, "ParagraphStyleValues", val, val
)

arcpy.AssignDomainToField_management(
thisDB + "/DescriptionOfMapUnits",
"ParagraphStyle",
"ParagraphStyleValues",
)

### GeoMaterials
addMsgAndPrint(" Setting up GeoMaterialsDict table and domains...")
# Copy GeoMaterials table
Expand Down
19 changes: 19 additions & 0 deletions Scripts/GeMS_Definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,25 @@
],
]

ParagraphStyleValues = [
"DMU Headnote - 1 Line",
"DMU Headnote - More Than 1 Line",
"DMU Headnote Paragraph",
"DMU Headnote - More Than 1 Line",
"DMU Unit 1 (1st after heading)",
"DMU Unit 1",
"DMU Unit 2",
"DMU Unit 3",
"DMU Unit 4",
"DMU Unit 5",
"DMU-Heading1",
"DMU-Heading2",
"DMU-Heading3",
"DMU-Heading4",
"DMU-Heading5",
"Run-inHead",
]


enumeratedValueDomainFieldList = [
"Type",
Expand Down

0 comments on commit f1edd4f

Please sign in to comment.