{"id":174041,"date":"2010-12-15T18:13:40","date_gmt":"2010-12-15T18:13:40","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=174041"},"modified":"2018-12-18T11:51:33","modified_gmt":"2018-12-18T19:51:33","slug":"determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values","title":{"rendered":"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values"},"author":7551,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[24641,22941],"tags":[32321,30341,23011,24401],"industry":[],"product":[36991],"class_list":["post-174041","blog","type-blog","status-publish","format-standard","hentry","category-defense","category-mapping","tag-hillshade","tag-intelligence","tag-raster","tag-terrain","product-arcgis-desktop"],"acf":{"short_description":" 22 0 2556\r\nIt is common to see data in a geographic coordinate system (GCS).  It\u2019s an easily understood, world-wide coordinate system","flexible_content":[{"acf_fc_layout":"content","content":"<p>It is common to see data in a\u00a0<a title=\"Geographic Coordinate System\" href=\"http:\/\/help.arcgis.com\/en\/arcgisdesktop\/10.0\/help\/index.html#\/What_are_geographic_coordinate_systems\/003r00000006000000\/\">geographic coordinate system (GCS).<\/a>\u00a0 It\u2019s an easily understood, world-wide coordinate system, and many datasets use GCS as part of their spatial reference.\u00a0 However, there are drawbacks to using a geographic coordinate system. One of the most prominent is evident when doing surface analyses over terrain with X,Y coordinates stored in latitude longitude and with elevation values stored in linear units such as meters. This is a problem because degrees of latitude and longitude are angular units measured on a sphere, and meters are linear units measured along a plane. Degrees of longitude are also of variable length, depending upon the latitude, and degrees of longitude\u00a0represent significantly larger distances than meters over most of the globe (except very close to the poles).<span id=\"more-2257\"><\/span><\/p>\n<p>For analyses\u00a0is best to project your data into a\u00a0<a title=\"Projected Coordinate System\" href=\"http:\/\/help.arcgis.com\/en\/arcgisdesktop\/10.0\/help\/index.html#\/What_are_projected_coordinate_systems\/003r0000000p000000\/\">projected coordinate system (PCS)<\/a>\u00a0so all measurements (X, Y, and Z) are in the same unit of measure.\u00a0 Sometimes, for visualization purposes when no further analysis is necessary, we can use a simple workaround to the problem of mismatched units. That is, we can apply a Z-factor to scale the Z units to approximately the same size.<br \/>\nHere\u2019s an example.\u00a0 We\u2019ll create a\u00a0<a title=\"Hillshade\" href=\"http:\/\/help.arcgis.com\/en\/arcgisdesktop\/10.0\/help\/index.html#\/How_Hillshade_works\/009z000000z2000000\/\">hillshade<\/a>\u00a0of a DTED tile of Hawaii to illustrate what happens when the elevation dataset is in a GCS (GCS_WGS_1984\u00a0 in this case) with elevation units in meters.<\/p>\n<blockquote><p>Executing: HillShade n19 \u201cC:WorkSpaceBlog TopicsDetermining Z-factor for surface rastersBlogData.gdbHillSha_n193\u2033 315 45 NO_SHADOWS 1Start Time: Thu Dec 09 12:38:34 2010WARNING\u00a0000869: Z factor: The Z units of the output geographical spatial reference are undefined. A default Z factor of 1 was used.Succeeded at Thu Dec 09 12:38:37 2010 (Elapsed Time: 3.00 seconds)<\/p><\/blockquote>\n<p>Note that the Hillshade tool completed, but flagged the process with a warning.<br \/>\nThe resulting layer looks like this:<img decoding=\"async\" src=\"http:\/\/downloads2.esri.com\/blogs\/images\/dev_21822.jpg\" alt=\"Hillshade with z factor of 1\" align=\"right\" border=\"0\" hspace=\"5\" vspace=\"4\" \/><br \/>\nThis hillshade has too much contrast; the shadowed areas appear black, and the sunny areas are almost white. This is because the slopes calculated by the hillshade algorithm were unrealistically steep, due to mismatched XY and Z units.\u00a0 To account for the difference in units we can \u201cscale\u201d the elevation meters into something closer to the decimal degrees.<br \/>\nThe calculation we\u2019ll use is:<br \/>\n<img decoding=\"async\" src=\"http:\/\/downloads2.esri.com\/blogs\/images\/dev_21823.jpg\" alt=\"\" border=\"0\" \/><br \/>\nwhere:<br \/>\n\u2022\u00a0\u201cL\u201d is the mid-latitude of the dataset<br \/>\n\u2022\u00a0111320 is the number of meters in one degree, in radians, at the equator (approximated using GCS_WGS_1984).<br \/>\nManually it would look like this:<br \/>\nFor L = 19.500 degrees ? 0.340 radians<br \/>\n<img decoding=\"async\" src=\"http:\/\/downloads2.esri.com\/blogs\/images\/dev_22304.jpg\" alt=\"\" border=\"0\" \/><br \/>\nWe\u2019ll round the result up to 0.00001. Now we will re-run the Hillshade tool and apply the z-factor.<\/p>\n<blockquote><p>Executing: HillShade n19 \u201cC:WorkSpaceBlog TopicsDetermining Z-factor for surface rastersBlogData.gdbHillSha_n191\u2033 315 45 NO_SHADOWS 0.00001Start Time: Thu Dec 09 12:42:11 2010Succeeded at Thu Dec 09 12:42:13 2010 (Elapsed Time: 2.00 seconds)<\/p><\/blockquote>\n<p>The new hillshade looks like this:<br \/>\n<img decoding=\"async\" src=\"http:\/\/downloads2.esri.com\/blogs\/images\/dev_21826.jpg\" alt=\"Hillshade with Z-factor 0.00001\" align=\"right\" border=\"0\" hspace=\"5\" vspace=\"4\" \/><br \/>\nThis is the expected result. We can apply a transparency, and place it over a scanned map or other colored layer to suggest the relief of the terrain.<br \/>\n<img decoding=\"async\" src=\"http:\/\/downloads2.esri.com\/blogs\/images\/dev_21827.jpg\" alt=\"\" border=\"0\" \/><br \/>\nThe z-factor calculation isn\u2019t difficult, but is a pain to do over and over, which makes this a great opportunity to implement it as a\u00a0<a title=\"Script tool\" href=\"http:\/\/help.arcgis.com\/en\/arcgisdesktop\/10.0\/help\/index.html#\/A_quick_tour_of_creating_script_tools\/001500000006000000\/\">script tool<\/a>.\u00a0 Here is a code sample for an ArcGIS 10 geoprocessing script tool that would perform the calculation. The input could be a Dataset, Raster Dataset, or Raster Layer and the output would be a double (numeric with decimal places).<\/p>\n<p>import os, sys, math, decimal, traceback<br \/>\nimport arcpy<br \/>\n# INPUT DATASET, Required<br \/>\ndataset = arcpy.GetParameterAsText(0)<br \/>\ntry:<br \/>\n#get the top and bottom<br \/>\ndesc = arcpy.Describe(dataset)<br \/>\nextent = desc.Extent<br \/>\nextent_split = [extent.XMin,extent.XMin,extent.XMax,extent.XMax]<br \/>\ntop = float(extent_split[3])<br \/>\nbottom = float(extent_split[1])<br \/>\n#find the mid-latitude of the dataset<br \/>\nif (top &gt; bottom):<br \/>\nheight = (top \u2013 bottom)<br \/>\nmid = (height\/2) + bottom<br \/>\nelif (top &lt; bottom):\u00a0 # Unlikely, but just in case<br \/>\nheight = bottom \u2013 top<br \/>\nmid = (height\/2) + top<br \/>\nelse: # top == bottom # Again, unlikely but just in case<br \/>\nmid = top<br \/>\n# convert degrees to radians<br \/>\nmid = math.radians(mid)<br \/>\n# Find length of degree at equator based on spheroid\u2019s semi-major axis<br \/>\nspatial_reference = desc.SpatialReference<br \/>\nsemi_major_axis = spatial_reference.semiMajorAxis # in meters<br \/>\nequatorial_length_of_degree = ((2.0 * math.pi * float(semi_major_axis))\/360.0)<br \/>\n# function:<br \/>\n# Z-Factor = 1.0\/(111320 * cos(mid-latitude in radians))<br \/>\ndecimal.getcontext().prec = 28<br \/>\ndecimal.getcontext().rounding = decimal.ROUND_UP<br \/>\na = decimal.Decimal(\u201c1.0\u2033)<br \/>\n#b = decimal.Decimal(\u201c111320.0\u2033) # number of meters in one degree at equator (approximate using WGS84)<br \/>\nb = decimal.Decimal(str(equatorial_length_of_degree))<br \/>\nc = decimal.Decimal(str(math.cos(mid)))<br \/>\nzfactor = a\/(b * c)<br \/>\nzfactor = \u201c%06f\u201d % (zfactor.__abs__())<br \/>\narcpy.SetParameterAsText(1,str(zfactor))<br \/>\n# return Z factor message<br \/>\narcpy.AddMessage(r\u201dZ-factor: \u201d + (str(zfactor)))<br \/>\nexcept:<br \/>\nprint \u201cGeneral Error:\u201d<br \/>\ntb = sys.exc_info()[2]<br \/>\ntbinfo = traceback.format_tb(tb)[0]<br \/>\npymsg = tbinfo + \u201cn\u201d + str(sys.exc_type)+ \u201c: \u201d + str(sys.exc_value)<br \/>\narcpy.AddError(pymsg)<br \/>\nprint pymsg<\/p>\n<p>You could copy this code into a text editor and save it\u00a0with a \u201c.py\u201d extension, then\u00a0<a title=\"Add script tool\" href=\"http:\/\/help.arcgis.com\/en\/arcgisdesktop\/10.0\/help\/index.html#\/Adding_a_script_tool\/00150000001r000000\/\">add it as a script tool<\/a>.<\/p>\n<p>Of course, we should make sure that the input dataset\/layer is in a GCS and that the extent of the dataset is something reasonable (within -180 to 180 and 90 to -90).\u00a0To do this we would use a\u00a0<a title=\"Tool validator\" href=\"http:\/\/help.arcgis.com\/en\/arcgisdesktop\/10.0\/help\/index.html#\/Customizing_script_tool_behavior\/00150000000t000000\/\">tool validator<\/a>\u00a0that checks before we run it. The following tool validator snippet for updateMessages will do just that and throw an error if the dataset\/layer doesn\u2019t meet our criteria.<\/p>\n<p>def updateMessages(self):<br \/>\n\u201c\u201d&#8221;Modify the messages created by internal validation for each tool<br \/>\nparameter.\u00a0 This method is called after internal validation.\u201d&#8221;\u201d<\/p>\n<p># check input is geographic<br \/>\nif (self.params[0].altered == True):<br \/>\nspatial_ref = arcpy.Describe(self.params[0].value).SpatialReference<br \/>\nif (spatial_ref.Type != \u201cGeographic\u201d):<br \/>\nself.params[0].setErrorMessage(\u201c%s is not in a Geographic Coordinate System.\u201d % self.params[0].Value)<\/p>\n<p># check that the extent is valid<br \/>\ndesc = arcpy.Describe(self.params[0].value)<br \/>\nextent = desc.Extent<br \/>\nextent_split = [extent.XMin,extent.YMin,extent.XMax,extent.YMax]<br \/>\nbExtOK = True<br \/>\nfor splst in extent_split:<br \/>\nif (splst == \u20191.#QNAN\u2019):<br \/>\nbExtOK = False<br \/>\nif (bExtOK == False):<br \/>\nself.params[0].setErrorMessage(\u201c%s does not have a valid extent.\u201d % self.params[0].Value)<\/p>\n<p>return<br \/>\n<em>Content provided by Matt Funk<\/em><\/p>\n"}],"authors":[{"ID":7551,"user_firstname":"Bob","user_lastname":"Booth","nickname":"BBooth","user_nicename":"BBooth","display_name":"Bob Booth","user_email":"BBooth@esri.com","user_url":"","user_registered":"2018-03-22 17:58:13","user_description":"","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/14f7505a4c7180d96d4fa1e9476d0b5f4c27400daffe17eceaa12152c3728d8a?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/14f7505a4c7180d96d4fa1e9476d0b5f4c27400daffe17eceaa12152c3728d8a?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"}],"related_articles":"","card_image":false,"wide_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Determining a Z-factor for scaling linear elevation units to match geographic coordinate values<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-18T19:51:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values\"},\"author\":{\"name\":\"Bob Booth\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/cc535dbfab85fd4be352ca8c66f85412\"},\"headline\":\"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values\",\"datePublished\":\"2010-12-15T18:13:40+00:00\",\"dateModified\":\"2018-12-18T19:51:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values\"},\"wordCount\":13,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"Hillshade\",\"Intelligence\",\"raster\",\"terrain\"],\"articleSection\":[\"Defense and Intelligence\",\"Mapping\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values\",\"name\":\"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2010-12-15T18:13:40+00:00\",\"dateModified\":\"2018-12-18T19:51:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/cc535dbfab85fd4be352ca8c66f85412\",\"name\":\"Bob Booth\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/14f7505a4c7180d96d4fa1e9476d0b5f4c27400daffe17eceaa12152c3728d8a?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/14f7505a4c7180d96d4fa1e9476d0b5f4c27400daffe17eceaa12152c3728d8a?s=96&d=blank&r=g\",\"caption\":\"Bob Booth\"},\"url\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values","og_locale":"en_US","og_type":"article","og_title":"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2018-12-18T19:51:33+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values"},"author":{"name":"Bob Booth","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/cc535dbfab85fd4be352ca8c66f85412"},"headline":"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values","datePublished":"2010-12-15T18:13:40+00:00","dateModified":"2018-12-18T19:51:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values"},"wordCount":13,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["Hillshade","Intelligence","raster","terrain"],"articleSection":["Defense and Intelligence","Mapping"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values","name":"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2010-12-15T18:13:40+00:00","dateModified":"2018-12-18T19:51:33+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/defense\/determining-a-z-factor-for-scaling-linear-elevation-units-to-match-geographic-coordinate-values#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Determining a Z-factor for scaling linear elevation units to match geographic coordinate values"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/cc535dbfab85fd4be352ca8c66f85412","name":"Bob Booth","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/14f7505a4c7180d96d4fa1e9476d0b5f4c27400daffe17eceaa12152c3728d8a?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/14f7505a4c7180d96d4fa1e9476d0b5f4c27400daffe17eceaa12152c3728d8a?s=96&d=blank&r=g","caption":"Bob Booth"},"url":""}]}},"text_date":"December 15, 2010","author_name":"Bob Booth","author_page":false,"custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcMap","tag_data":[{"term_id":32321,"name":"Hillshade","slug":"hillshade","term_group":0,"term_taxonomy_id":32321,"taxonomy":"post_tag","description":"","parent":0,"count":31,"filter":"raw"},{"term_id":30341,"name":"Intelligence","slug":"intelligence","term_group":0,"term_taxonomy_id":30341,"taxonomy":"post_tag","description":"","parent":0,"count":31,"filter":"raw"},{"term_id":23011,"name":"raster","slug":"raster","term_group":0,"term_taxonomy_id":23011,"taxonomy":"post_tag","description":"","parent":0,"count":147,"filter":"raw"},{"term_id":24401,"name":"terrain","slug":"terrain","term_group":0,"term_taxonomy_id":24401,"taxonomy":"post_tag","description":"","parent":0,"count":49,"filter":"raw"}],"category_data":[{"term_id":24641,"name":"Defense and Intelligence","slug":"defense","term_group":0,"term_taxonomy_id":24641,"taxonomy":"category","description":"","parent":0,"count":162,"filter":"raw"},{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2691,"filter":"raw"}],"product_data":[{"term_id":36991,"name":"ArcMap","slug":"arcgis-desktop","term_group":0,"term_taxonomy_id":36991,"taxonomy":"product","description":"","parent":36981,"count":325,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-desktop","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/174041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/7551"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=174041"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/174041\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=174041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=174041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=174041"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=174041"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=174041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}