{"id":328928,"date":"2022-02-01T21:00:51","date_gmt":"2022-02-01T21:00:51","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=328928"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=328928","title":{"rendered":"<span>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430? \u0412\u044b\u044f\u0441\u043d\u044f\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"356\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ef3\/79d\/dd5\/ef379ddd5debd772fd0432a9359fdcfe.png\" data-width=\"700\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a \u0441\u0442\u0430\u0440\u0442\u0443 \u0444\u043b\u0430\u0433\u043c\u0430\u043d\u0441\u043a\u043e\u0433\u043e <a href=\"https:\/\/skillfactory.ru\/data-scientist-pro?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_dspr_01022022&amp;utm_term=lead\">\u043a\u0443\u0440\u0441\u0430 \u043f\u043e Data Science<\/a> \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u043c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0431\u0435\u0441\u043f\u0438\u043b\u043e\u0442\u043d\u044b\u043c \u043f\u043e\u043b\u0451\u0442\u0430\u043c \u043d\u0430\u0434 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043b\u0430\u043d\u0435\u0442\u044b. \u0417\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<hr\/>\n<p>\u041b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u2014 \u0440\u0435\u0448\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0438\u043b\u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445 \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u043e\u043f\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u0430\u0440\u0442 \u041c\u0430\u0440\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442.<\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0448\u0443\u043c\u0438\u0445\u0435, \u043f\u043e\u0434\u043d\u044f\u0442\u043e\u0439 \u043e\u0434\u043d\u0438\u043c \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u043c \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0435\u0440\u043e\u043c, \u041c\u0430\u0440\u0441 \u0432\u0441\u0451 \u0447\u0430\u0449\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043d\u043e\u0432\u043e\u0441\u0442\u044f\u0445, \u0438 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0443\u0436\u0435 \u0441\u043a\u043e\u0440\u043e \u043b\u044e\u0434\u0438 \u0431\u0443\u0434\u0443\u0442 \u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u0435\u0433\u043e \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u041c\u0430\u0440\u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0448\u0430\u0440\u043e\u043c \u0432 \u043d\u0435\u0431\u0435, \u043d\u043e \u043c\u0430\u043b\u043e \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435. \u0410 \u0432\u0435\u0434\u044c \u0443 \u041c\u0430\u0440\u0441\u0430 \u0431\u043e\u0433\u0430\u0442\u044b\u0439 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442 \u2014 \u043e\u0442 \u043a\u0430\u043d\u044c\u043e\u043d\u043e\u0432 \u0438 \u043a\u0440\u0430\u0442\u0435\u0440\u043e\u0432 \u0434\u043e \u0432\u0443\u043b\u043a\u0430\u043d\u043e\u0432. <\/p>\n<p>\u0412 \u0445\u043e\u0434\u0435 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0431\u0435\u0441\u043f\u0438\u043b\u043e\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u0451\u0442\u043e\u0432 \u043a\u0430\u0440\u0442\u0443 \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438. \u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u041c\u0430\u0440\u0441. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u0430\u0440\u0442\u0443 \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u0433\u0438\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0431\u044b \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441, \u0435\u0433\u043e \u043e\u043a\u0435\u0430\u043d\u044b \u0438 \u0440\u0435\u043a\u0438. \u0410 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043f\u043e\u0439\u043c\u0451\u043c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<h3>\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0435 \u041c\u0430\u0440\u0441\u0430. \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0421\u0428\u0410 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b <a href=\"https:\/\/astrogeology.usgs.gov\/search\/map\/Mars\/GlobalSurveyor\/MOLA\/Mars_MGS_MOLA_Shade_global_463m\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443: \u043e\u0431\u044a\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0433\u0440\u043e\u043c\u0435\u043d \u2014 \u044d\u0442\u043e 2,3 \u0413\u0431.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 tif, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043e\u043d\u0438 \u0447\u0435\u0440\u0435\u0437 rasterio \u0432 np.array. \u0420\u0430\u0437\u043c\u0435\u0440\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430: 23040 x 46090. \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2014 \u044d\u0442\u043e \u0432\u044b\u0441\u043e\u0442\u044b \u041a\u0440\u0430\u0441\u043d\u043e\u0439 \u043f\u043b\u0430\u043d\u0435\u0442\u044b. \u041d\u0430 \u041c\u0430\u0440\u0441\u0435 \u043d\u0435\u0442 \u043e\u043a\u0435\u0430\u043d\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u0442\u043e\u0447\u043a\u0438 \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u0432\u044b\u0441\u043e\u0442\u044b \u2014 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f. \u0415\u0441\u043b\u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e, \u00ab\u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043c\u043e\u0440\u044f\u00bb \u043d\u0430 \u041c\u0430\u0440\u0441\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0432\u044b\u0441\u043e\u0442\u0430 \u043d\u0430 \u043f\u043b\u0430\u043d\u0435\u0442\u0435.\u00a0\u041e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u2014 \u044d\u0442\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0438\u0436\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b, \u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u2014 \u0432\u044b\u0448\u0435. <\/p>\n<p>\u0413\u043e\u0440\u0430 \u041e\u043b\u0438\u043c\u043f \u2014 \u0441\u0430\u043c\u0430\u044f \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u043d\u0430 \u043f\u043b\u0430\u043d\u0435\u0442\u0435 (21 241 \u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b \u041c\u0430\u0440\u0441\u0430), \u0430 \u0440\u0430\u0432\u043d\u0438\u043d\u0430 \u042d\u043b\u043b\u0430\u0434\u0430 \u2014 \u0441\u0430\u043c\u0430\u044f \u043d\u0438\u0437\u043a\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u2014 \u044d\u0442\u043e \u20138201 \u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b \u041c\u0430\u0440\u0441\u0430. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0430\u043c\u043e\u0439 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0438 \u0441\u0430\u043c\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043d\u0430 \u041c\u0430\u0440\u0441\u0435 (~30 \u043a\u043c) \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u0435\u0436\u0434\u0443 \u042d\u0432\u0435\u0440\u0435\u0441\u0442\u043e\u043c \u0438 \u041c\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u043e\u0439 \u0432\u043f\u0430\u0434\u0438\u043d\u043e\u0439 \u043d\u0430 \u0417\u0435\u043c\u043b\u0435 (~20 \u043a\u043c):<\/p>\n<pre><code class=\"python\">      import rasterio       import numpy as np        mars = rasterio.open('..\/..\/Planets\/mars\/data\/Mars_MGS_MOLA_DEM_mosaic_global_463m.tif')       mars = mars.read()              print(mars.shape)       print(np.amin(mars[0]))       print(np.amax(mars[0]))       print(np.amax(mars[0]) + abs(np.amin(mars[0])))<\/code><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u0434\u0430:<\/p>\n<pre><code>      (1, 23040, 46080)       -8201       21241       29442<\/code><\/pre>\n<p>\u041d\u0430\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u044e\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0441 \u0447\u0435\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e. \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0439\u043c\u0451\u0442 \u043d\u0435\u043c\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041c\u043e\u0436\u043d\u043e \u0443\u0441\u043f\u0435\u0442\u044c \u0432\u044b\u043f\u0438\u0442\u044c \u0447\u0430\u044e.<\/p>\n<pre><code class=\"python\">      import matplotlib.pyplot as plt        fig, ax = plt.subplots()       fig.set_size_inches(14, 7)        ax.imshow(mars[0], cmap=\"viridis\")       ax.axis('off')        plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430\" title=\"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430\" height=\"356\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/46f\/ce9\/7a6\/46fce97a67164476f73889ab1e746d14.png\" data-width=\"700\"\/><figcaption>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430<\/figcaption><\/figure>\n<p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044f \u043d\u0430 \u043d\u0435\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u043b\u0438\u043d\u0435\u0439\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u044b\u0442\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437 \u043d\u0438\u0445 \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f. \u041d\u0430 \u041c\u0430\u0440\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u20138000 \u0438 12 000 \u043c, \u0430 \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0432\u044b\u0441\u043e\u0442\u0430 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043b\u0438\u0436\u0435 \u043a \u0440\u0430\u0432\u043d\u0438\u043d\u0435 \u042d\u043b\u043b\u0430\u0434\u0435, \u0447\u0435\u043c \u043a \u0433\u043e\u0440\u0435 \u041e\u043b\u0438\u043c\u043f.\u00a0<\/p>\n<p>\u0427\u0435\u0442\u044b\u0440\u0435 \u0433\u043e\u0440\u044b \u0431\u043b\u0438\u0436\u0435 \u043a \u0436\u0451\u043b\u0442\u043e\u043c\u0443 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043a\u0440\u043e\u0448\u0435\u0447\u043d\u0443\u044e \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0447\u0430\u0441\u0442\u044c \u043f\u043b\u0430\u043d\u0435\u0442\u044b, \u043d\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u044b \u043f\u043e \u0432\u044b\u0441\u043e\u0442\u0435, \u0438 \u0443 \u043d\u0438\u0445 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u0432\u0441\u0435\u0445 \u0446\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0446\u0432\u0435\u0442\u043e\u0432, \u0447\u0451\u0442\u043a\u043e\u0441\u0442\u044c \u043f\u043b\u043e\u0445\u0430\u044f:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u041c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435\" title=\"\u041c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435\" height=\"191\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f9d\/8cc\/118\/f9d8cc118a0814f0f37ed418db06eeba.png\" data-width=\"700\"\/><figcaption>\u041c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435<\/figcaption><\/figure>\n<h2>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442<\/h2>\n<p>\u0420\u0435\u0448\u0438\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0441\u043e\u0437\u0434\u0430\u0432 \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0438 \u043d\u0430\u0440\u0443\u0448\u0438\u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c\u0438 \u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u044b\u0448\u0435 14 000 \u043c \u0438 \u043a\u0443\u0447\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0438\u0436\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u20138201 (\u0441\u0430\u043c\u0430\u044f \u043d\u0438\u0437\u043a\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445) \u0438 14 000 \u043c, \u0430 \u0432\u0441\u0451, \u0447\u0442\u043e \u0432\u044b\u0448\u0435, \u0431\u0443\u0434\u0435\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0446\u0432\u0435\u0442\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b. matplotlib \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0445\u043e\u0440\u043e\u0448\u0430 \u0432 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442\u0430\u0445. \u0412\u043e\u0442 <a href=\"https:\/\/astrogeology.usgs.gov\/search\/map\/Mars\/GlobalSurveyor\/MOLA\/Mars_MGS_MOLA_ClrShade_merge_global_463m\">\u0447\u0442\u043e<\/a> \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432 NASA, \u0438 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0440\u0430\u0437\u0434\u0435\u043b \u043a\u043e\u0434\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430, \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u0435\u0436\u0434\u0443 \u20138210 \u0438 14 000 \u043c \u0432 10-\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u043e\u0441\u043a\u0430\u0445. \u041c\u0435\u0442\u043e\u0434 LinearSegmentedColormap \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0446\u0432\u0435\u0442\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0441 N \u0446\u0432\u0435\u0442\u0430\u043c\u0438, \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430.\u00a0<\/p>\n<p>\u041a\u043b\u0430\u0441\u0441 BoundaryNorm \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430 \u043d\u0435\u0439 \u0446\u0432\u0435\u0442\u0430 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 BoundaryNorm, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0446\u0432\u0435\u0442\u0430 \u0432 10-\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u043e\u0441\u043a\u0430\u0445 \u043c\u0435\u0436\u0434\u0443 \u20138210 \u0438 14 000 \u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 0 \u0434\u043e 10 \u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043e\u0434\u043d\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u043c, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 10 \u0434\u043e 20 \u043c \u2014 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0438 \u0442. \u0434. \u0412\u0441\u0451, \u0447\u0442\u043e \u0432\u044b\u0448\u0435 14 000 \u043c, \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0446\u0432\u0435\u0442\u0435 \u043a\u0430\u0440\u0442\u044b:<\/p>\n<pre><code class=\"python\">from matplotlib.colors import BoundaryNorm, LinearSegmentedColormap import numpy as np  custom_cmap = LinearSegmentedColormap.from_list('mars', ['#162252',                                                          '#104E8B',                                                          '#00B2EE',                                                          '#00FF00',                                                          '#FFFF00',                                                          '#FFA500',                                                          '#FF0000',                                                          '#8b0000',                                                          '#964B00',                                                          '#808080',                                                          '#FFFFFF'], N=2221)  bounds = np.arange(-8210, 14000, 10) norm = BoundaryNorm(bounds, custom_cmap.N)<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u044b\u043c\u0438 \u0432\u044b\u0441\u043e\u0442\u0430\u043c\u0438 \u043c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0426\u0432\u0435\u0442\u043e\u0432 \u0441\u0442\u0430\u043b\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0432\u0435\u0434\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u041c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435\" title=\"\u041c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435\" height=\"191\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/569\/a42\/628\/569a42628edaa2ec65283e916ac4b6fd.png\" data-width=\"700\"\/><figcaption>\u041c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435<\/figcaption><\/figure>\n<p>\u0421\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043a\u0430\u0440\u0442\u0443 \u043c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u0441 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u043d\u043e\u0432\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439. \u041f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e: \u044d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0430\u044f \u043a\u0430\u0440\u0442\u0430, \u0430 \u0432\u0435\u0434\u044c \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438:<\/p>\n<pre><code class=\"python\">fig, ax = plt.subplots() fig.set_size_inches(14, 7)  ax.imshow(mars[0], cmap=custom_cmap, norm=norm) ax.axis('off') logo = plt.imread('..\/..\/Branding\/globe_black.png') newax = fig.add_axes([0.82, 0.13, 0.08, 0.08], anchor='NE') newax.imshow(logo) newax.axis('off') txt = ax.text(0.0, 0.02, \"Martian Topography \\n@PythonMaps\",               size=4,               color='white',               transform = ax.transAxes) plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0420\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430 \u043d\u0430 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435\" title=\"\u0420\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430 \u043d\u0430 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435\" height=\"356\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/742\/d8e\/930\/742d8e93052ac7035579a4226a463210.png\" data-width=\"700\"\/><figcaption>\u0420\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430 \u043d\u0430 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435<\/figcaption><\/figure>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432:<\/p>\n<pre><code class=\"python\">def label_features(ax):       ax.text(5000, 8400, \"Olympus\\n Mons\")      ax.text(7000, 10000, \"Ascreaus\\n Mons\")      ax.text(6200, 11500, \"Pavonis\\n Mons\")      ax.text(5000, 13000, \"Arsia\\n Mons\")      ax.text(8500, 13000, \"Tharsis\", rotation=45)      ax.text(12000, 14000, \"Vallies\\n Marineris\")      ax.text(17000, 18000, \"Argyre\")      ax.text(20000, 2000, \"Vastitas Borealis\")      ax.text(17000, 8500, \"Chryse\\n Planitia\")      ax.text(20000, 5000, \"Acidalia Planitia\")      ax.text(30000, 16500, \"Hellas\", color='white')      ax.text(37000, 5000, \"Utopia\\n Planitia\")      ax.text(41000, 8000, \"Elysium\")      ax.text(34000, 9800, \"Isidis\")      ax.text(7000, 5000, \"Alba Patera\")      ax.text(2000, 6500, \"Amazonis\\n Planitia\")       return ax  fig, ax = plt.subplots() fig.set_size_inches(14, 7)  ax.imshow(mars[0], cmap=custom_cmap, norm=norm) ax = label_features(ax) ax.axis('off') newax = fig.add_axes([0.82, 0.13, 0.08, 0.08], anchor='NE') newax.imshow(logo) newax.axis('off') txt = ax.text(0.0, 0.02, \"Martian Topography \\n@PythonMaps\",               size=4,               color='white',               transform = ax.transAxes) plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0420\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430 \u0441 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\" title=\"\u0420\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430 \u0441 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\" height=\"356\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68b\/76a\/d8b\/68b76ad8b7ace48cbc51054d2a942ebe.png\" data-width=\"700\"\/><figcaption>\u0420\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430 \u0441 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/figcaption><\/figure>\n<h2>\u0422\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u041c\u0430\u0440\u0441\u0430<\/h2>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u041c\u0430\u0440\u0441 \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0437\u0435\u043c\u043d\u044b\u043c. \u0418 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u043a\u0430\u043a\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441. \u042d\u0442\u043e \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u0441 \u0442\u0451\u043c\u043d\u043e-\u0441\u0438\u043d\u0438\u043c\u0438 \u0438 \u0433\u043e\u043b\u0443\u0431\u044b\u043c\u0438 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0438\u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f \u0438 \u0437\u0435\u043b\u0451\u043d\u043e-\u043a\u043e\u0440\u0438\u0447\u043d\u0435\u0432\u044b\u043c\u0438 \u2014 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u044b\u0448\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f.<\/p>\n<p>\u0412 Matplotlib \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 terrain, \u043d\u043e \u0435\u0451 \u0441\u0438\u043d\u044f\u044f \u0447\u0430\u0441\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u0451\u043c\u043d\u0430\u044f. \u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043a\u0430\u0440\u0442\u0430 ocean. \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0432 \u0438\u0445, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443, \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0437\u0435\u043c\u043d\u044b\u043c \u043a\u0430\u0440\u0442\u0430\u043c.\u00a0\u0426\u0435\u043b\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 BoundaryNorm, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0438\u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 ocean, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0448\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f \u2014 \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 terrain.<\/p>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0446\u0432\u0435\u0442\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u043f\u043e \u0448\u043a\u0430\u043b\u0435 \u043e\u0442 0 \u0434\u043e 1. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438\u0437 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0435\u0451 \u0447\u0430\u0441\u0442\u044c.\u00a0\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0438\u0436\u0435 \u0432 plt.cm.ocean(np.linspace(0.2, 0.8, 821)) \u0438\u0437 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b ocean \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441 821 \u0446\u0432\u0435\u0442\u043e\u043c \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u0430 \u0438\u0437 \u0435\u0451 \u0447\u0430\u0441\u0442\u0438 \u043d\u0438\u0436\u0435 0,2 \u0438 \u0432\u044b\u0448\u0435 0,8.\u00a0<\/p>\n<p>\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b terrain, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f 1400 \u0446\u0432\u0435\u0442\u043e\u0432. \u0417\u0430\u0442\u0435\u043c \u044d\u0442\u0438 \u0434\u0432\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u0443 \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 LinearSegmentedColourmap.<\/p>\n<p>\u0420\u0435\u043b\u044c\u0435\u0444 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 821 \u0446\u0432\u0435\u0442\u043e\u043c ocean \u0438 1400 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 terrain. \u041a\u043b\u0430\u0441\u0441 BoundaryNorm \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u043a\u0430\u0440\u0442\u044b \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.\u00a0<\/p>\n<p>\u0412 \u043a\u043e\u0434\u0435 \u043d\u0438\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0441 2221 \u0446\u0432\u0435\u0442\u043e\u043c (821 ocean + 1400 terrain) \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c BoundaryNorm, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439 \u043f\u043e \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u044f\u043c \u2014 821 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0438\u0436\u0435 0 \u0438 1400 \u0432\u044b\u0448\u0435 0.\u00a0\u0412\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0438\u0436\u0435 0 \u0431\u0443\u0434\u0443\u0442 \u0432 \u0446\u0432\u0435\u0442\u0430\u0445 \u0447\u0430\u0441\u0442\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b ocean, \u0430 \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0448\u0435 \u043d\u0443\u043b\u044f \u2014 \u0432 \u0446\u0432\u0435\u0442\u0430\u0445 \u043a\u0430\u0440\u0442\u044b terrain:<\/p>\n<pre><code class=\"python\">colors_undersea = plt.cm.ocean(np.linspace(0.2, 0.8, 821)) undersea_map = LinearSegmentedColormap.from_list('undersea_map', colors_undersea, N=821)  colors_land = plt.cm.terrain(np.linspace(0.25, 1, 1400)) land_map = LinearSegmentedColormap.from_list('land_map', colors_land, N=1400)  colors = np.vstack((colors_undersea, colors_land)) terrain_map = LinearSegmentedColormap.from_list('cut_terrain', colors, N=2221)  bounds = np.arange(-8210, 14000, 10) norm = BoundaryNorm(bounds, terrain_map.N)<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b ocean \u0438 terrain \u0432\u043c\u0435\u0441\u0442\u0435\" title=\"\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b ocean \u0438 terrain \u0432\u043c\u0435\u0441\u0442\u0435\" height=\"513\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/773\/a75\/cd3\/773a75cd3cc9e5d74b33de262cbcffe9.png\" data-width=\"700\"\/><figcaption>\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b ocean \u0438 terrain \u0432\u043c\u0435\u0441\u0442\u0435<\/figcaption><\/figure>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u044d\u0442\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0441 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0446\u0432\u0435\u0442\u043e\u0432 \u0434\u0435\u043b\u0430\u044e\u0442 \u041c\u0430\u0440\u0441 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043d\u0430 \u0417\u0435\u043c\u043b\u044e:<\/p>\n<pre><code class=\"python\">def label_features_terrain(ax):     ax.text(5000, 8400, \"Olympus\\n Mons\")     ax.text(7000, 10000, \"Ascreaus\\n Mons\")     ax.text(6200, 11500, \"Pavonis\\n Mons\")     ax.text(5000, 13000, \"Arsia\\n Mons\")     ax.text(8500, 13000, \"Tharsis\", rotation=45)     ax.text(12000, 14000, \"Vallies\\n Marineris\")     ax.text(17000, 18000, \"Argyre\", color='white')     ax.text(20000, 2000, \"Vastitas Borealis\", color='white')     ax.text(17000, 8500, \"Chryse\\n Planitia\", color='white')     ax.text(20000, 5000, \"Acidalia Planitia\", color='white')     ax.text(30000, 16500, \"Hellas\", color='white')     ax.text(37000, 5000, \"Utopia\\n Planitia\", color='white')     ax.text(41000, 8000, \"Elysium\")     ax.text(34000, 9800, \"Isidis\", color='white')     ax.text(7000, 5000, \"Alba Patera\")     ax.text(2000, 6500, \"Amazonis\\n Planitia\", color='white')     return ax  fig, ax = plt.subplots() fig.set_size_inches(14, 7)  ax.imshow(mars[0], cmap=terrain_map, norm=norm) ax = label_features_terrain(ax) ax.axis('off') newax = fig.add_axes([0.82, 0.13, 0.08, 0.08], anchor='NE') newax.imshow(logo) newax.axis('off') txt = ax.text(0.0, 0.02, \"Martian Topography \\n@PythonMaps\",               size=4,               color='white',               transform = ax.transAxes) plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u041c\u043e\u0436\u0435\u0442, \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441?\" title=\"\u041c\u043e\u0436\u0435\u0442, \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441?\" height=\"356\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b17\/6fd\/427\/b176fd4270f1081d9910c6bd975f8e9b.png\" data-width=\"700\"\/><figcaption>\u041c\u043e\u0436\u0435\u0442, \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441?<\/figcaption><\/figure>\n<h2>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f<\/h2>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0432\u044b\u0441\u043e\u0442\u0443 \u041c\u0430\u0440\u0441\u0430. \u041d\u043e \u044d\u0442\u043e\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043c\u0435\u0442\u043e\u0434 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442. \u0426\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u0437 2221 \u0446\u0432\u0435\u0442\u0430: 821 \u0438\u0437 \u043a\u0430\u0440\u0442\u044b ocean \u0438 1400 \u0438\u0437 \u043a\u0430\u0440\u0442\u044b terrain. \u041c\u0435\u043d\u044f\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0432\u0435\u0442\u043e\u0432 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u0430\u0440\u0442\u0435, \u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u0438\u0445 \u043e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e, \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043c\u043e\u0440\u044f. \u0422\u0430\u043c, \u0433\u0434\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0438\u0439 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0437\u0435\u043b\u0451\u043d\u044b\u0439.<\/p>\n<p>\u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0446\u0432\u0435\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f 3000 \u043c, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0435 10 \u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u043e\u043c, \u043d\u0443\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c ocean \u043d\u0430 300 \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c terrain \u043d\u0430 300 \u0446\u0432\u0435\u0442\u043e\u0432:<\/p>\n<pre><code class=\"python\">def change_sea_level(new_sea_level):     new_sea_level = new_sea_level \/ 10     undersea = int(800 + new_sea_level)     land = int(1400 - new_sea_level)     colors_undersea = plt.cm.ocean(np.linspace(0.2, 0.8, undersea))     undersea_map = LinearSegmentedColormap.from_list('undersea_map', colors_undersea, N=undersea)      colors_land = plt.cm.terrain(np.linspace(0.25, 1, land))     land_map = LinearSegmentedColormap.from_list('land_map', colors_land, N=land)      colors = np.vstack((colors_undersea, colors_land))     terrain_map = LinearSegmentedColormap.from_list('cut_terrain', colors, N=2221)      bounds = np.arange(-8210, 14000, 10)     norm = BoundaryNorm(bounds, terrain_map.N)     return terrain_map, norm   terrain_map0, norm0 = change_sea_level(new_sea_level = 0) terrain_map3000, norm3000 = change_sea_level(new_sea_level = 3000) terrain_map_3000, norm_3000 = change_sea_level(new_sea_level = -3000)<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\" title=\"\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\" height=\"511\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/401\/227\/c9c\/401227c9ca9526f4e7cd8e8ab1d2c344.png\" data-width=\"700\"\/><figcaption>\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0431\u044b \u041c\u0430\u0440\u0441 \u043f\u0440\u0438 \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043e\u0440\u044f \u043d\u0430 1500 \u043c \u0432\u044b\u0448\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b. \u0422\u0430\u043a\u043e\u0439 \u041c\u0430\u0440\u0441 \u043d\u0430 70% \u043f\u043e\u043a\u0440\u044b\u0442 \u0432\u043e\u0434\u043e\u0439, \u043a\u0430\u043a \u0438 \u0417\u0435\u043c\u043b\u044f:<\/p>\n<pre><code class=\"python\">terrain_map1500, norm1500 = change_sea_level(new_sea_level = 1500)  fig, ax = plt.subplots() fig.set_size_inches(14, 7)  ax.imshow(mars[0], cmap=terrain_map1500, norm=norm1500) ax = label_features_terrain(ax) ax.axis('off') newax = fig.add_axes([0.82, 0.13, 0.08, 0.08], anchor='NE') newax.imshow(logo) newax.axis('off') txt = ax.text(0.0, 0.02, \"Martian Topography \\n@PythonMaps\",               size=4,               color='white',               transform = ax.transAxes) plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0422\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441 \u0441 \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043c\u043e\u0440\u044f \u043d\u0430 1500 \u043c \u0432\u044b\u0448\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b\" title=\"\u0422\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441 \u0441 \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043c\u043e\u0440\u044f \u043d\u0430 1500 \u043c \u0432\u044b\u0448\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b\" height=\"356\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5aa\/2cf\/4d6\/5aa2cf4d6c2686c38fc90b156821f267.png\" data-width=\"700\"\/><figcaption>\u0422\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441 \u0441 \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043c\u043e\u0440\u044f \u043d\u0430 1500 \u043c \u0432\u044b\u0448\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b<\/figcaption><\/figure>\n<h3>\u041e\u0442\u043c\u044b\u0432\u043a\u0430 \u0440\u0435\u043b\u044c\u0435\u0444\u0430<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0440\u0435\u043b\u044c\u0435\u0444\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0432\u0435\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442 3D. \u041e\u0442\u043c\u044b\u0432\u043a\u0430 \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u2014 \u044d\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u0432 3D, \u043e\u0431\u044b\u0447\u043d\u043e \u0432 \u043e\u0442\u0442\u0435\u043d\u043a\u0430\u0445 \u0441\u0435\u0440\u043e\u0433\u043e. \u0411\u043e\u043b\u0435\u0435 \u0442\u0451\u043c\u043d\u044b\u0435 \u0438 \u0441\u0432\u0435\u0442\u043b\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u2014 \u044d\u0442\u043e \u0442\u0435\u043d\u0438 \u0438 \u043e\u0441\u0432\u0435\u0449\u0451\u043d\u043d\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438, \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0440\u0435\u043b\u044c\u0435\u0444\u0430. \u041e\u0442\u043c\u044b\u0432\u043a\u0443 \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u043d\u0430 \u043a\u0430\u0440\u0442\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438.\u00a0<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u0442\u043c\u044b\u0432\u043a\u043e\u0439 \u0440\u0435\u043b\u044c\u0435\u0444\u0430, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 earthpy. \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 azimuth (\u0430\u0437\u0438\u043c\u0443\u0442), \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0430\u0440\u044c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442 0 \u0434\u043e 360\u00b0 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0432\u0435\u0442\u0430. 0\u00b0 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0441\u0432\u0435\u0442\u0430, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u043c\u0443 \u0441\u0442\u0440\u043e\u0433\u043e \u043d\u0430 \u0441\u0435\u0432\u0435\u0440. <\/p>\n<\/li>\n<li>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u2014 \u044d\u0442\u043e altitude (\u0432\u044b\u0441\u043e\u0442\u0430), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0432\u0435\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f. \u0415\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u044c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043e\u0442 1 \u0434\u043e 90:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\">import earthpy as et import earthpy.spatial as es  hillshade = es.hillshade(mars[0], azimuth=250, altitude=1) fig, ax = plt.subplots(facecolor='#FCF6F5FF') fig.set_size_inches(14, 7) ax.imshow(mars[0], cmap=terrain_map, norm=norm) ax.imshow(hillshade, cmap=\"Greys\", alpha=0.2) ax = label_features_terrain(ax) ax.axis('off') newax = fig.add_axes([0.8, 0.78, 0.08, 0.08], anchor='NE') newax.imshow(logo) newax.axis('off') txt = ax.text(0.02, 0.03, \"Martian Topography \\n@PythonMaps\",               size=8,               color='black',               transform = ax.transAxes) plt.show()<\/code><\/pre>\n<p>\u0418\u0442\u043e\u0433 \u2014 \u0442\u0430 \u0436\u0435 \u043a\u0430\u0440\u0442\u0430, \u043d\u043e \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u043a\u0440\u0443\u043f\u043d\u0435\u0435, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0441\u0435\u0432\u0435\u0440\u043d\u044b\u0445 \u043e\u043a\u0435\u0430\u043d\u0430\u0445:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0422\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441 \u0441 \u043e\u0442\u043c\u044b\u0432\u043a\u043e\u0439 \u0440\u0435\u043b\u044c\u0435\u0444\u0430\" title=\"\u0422\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441 \u0441 \u043e\u0442\u043c\u044b\u0432\u043a\u043e\u0439 \u0440\u0435\u043b\u044c\u0435\u0444\u0430\" height=\"356\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fba\/f2b\/948\/fbaf2b948e21ecf1904858ef54a01702.png\" data-width=\"700\"\/><figcaption>\u0422\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441 \u0441 \u043e\u0442\u043c\u044b\u0432\u043a\u043e\u0439 \u0440\u0435\u043b\u044c\u0435\u0444\u0430<\/figcaption><\/figure>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0451. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0441 \u0447\u0451\u0442\u043a\u043e\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u041c\u0430\u0440\u0441\u0430. \u0412\u043f\u0435\u0440\u0435\u0434\u0438 \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0435\u043e\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0440\u0443\u0442\u044b\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python.\u00a0<\/p>\n<p>\u041f\u0438\u0448\u0438\u0442\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u0430\u0440\u0442\u044b. \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0432 \u043d\u0430\u0448\u0438\u0445 \u043f\u0430\u0431\u043b\u0438\u043a\u0430\u0445, \u0442\u0430\u043a \u0447\u0442\u043e <a href=\"https:\/\/twitter.com\/PythonMaps\">\u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0439\u0442\u0435<\/a>, \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0447\u0435\u0433\u043e-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u043e \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435.<\/p>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 <a href=\"https:\/\/astrogeology.usgs.gov\/search\/map\/Mars\/GlobalSurveyor\/MOLA\/Mars_MGS_MOLA_Shade_global_463m\">\u0441\u043f\u0438\u0441\u043e\u043a<\/a> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432.<\/p>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 Data Science \u0438\u043b\u0438 Python \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u043a\u0443\u0440\u0441\u0430\u0445:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/data-scientist-pro?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_dspr_01022022&amp;utm_term=conc\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Data Scientist<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/python-fullstack-web-developer?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_fpw_01022022&amp;utm_term=conc\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Fullstack-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430 Python<\/a><\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"200\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c57\/9fb\/e7e\/c579fbe7ee5ea3cb057a2e6c9161a072.png\" data-width=\"1000\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0423\u0437\u043d\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 <a href=\"https:\/\/skillfactory.ru\/catalogue?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=sf_allcourses_01022022&amp;utm_term=conc\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<details class=\"spoiler\">\n<summary>\u0414\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 \u0438 \u043a\u0443\u0440\u0441\u044b<\/summary>\n<div class=\"spoiler__content\">\n<p><strong>Data Science \u0438 Machine Learning<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/data-scientist-pro?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_dspr_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Data Scientist<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/data-analyst-pro?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=analytics_dapr_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Data Analyst<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/matematika-dlya-data-science#syllabus?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_mat_01022022&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00ab\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f Data Science\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/matematika-i-machine-learning-dlya-data-science?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_matml_01022022&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00ab\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0438 Machine Learning \u0434\u043b\u044f Data Science\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/data-engineer?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_dea_01022022&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u043f\u043e Data Engineering<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/machine-learning-i-deep-learning?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_mldl_01022022&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00abMachine Learning \u0438 Deep Learning\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/machine-learning?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_ml_01022022&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u043f\u043e Machine Learning<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>Python, \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/python-fullstack-web-developer?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_fpw_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Fullstack-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430 Python<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/python-for-web-developers?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_pws_01022022&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00abPython \u0434\u043b\u044f \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/frontend-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_fr_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Frontend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/webdev?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_webdev_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/ios-razrabotchik-s-nulya?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_ios_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f iOS-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/android-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_andr_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Android-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>Java \u0438 C#<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/java-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_java_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/java-qa-engineer-testirovshik-po?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_qaja_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f QA-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u043d\u0430 JAVA<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/c-sharp-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_cdev_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f C#-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/game-razrabotchik-na-unity-i-c-sharp?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_gamedev_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440 \u043d\u0430 Unity<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041e\u0442 \u043e\u0441\u043d\u043e\u0432 \u2014 \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0443<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/algoritmy-i-struktury-dannyh?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_algo_01022022&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00ab\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/c-plus-plus-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_cplus_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f C++ \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/cyber-security-etichnij-haker?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_hacker_01022022&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u042d\u0442\u0438\u0447\u043d\u044b\u0439 \u0445\u0430\u043a\u0435\u0440<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0410 \u0442\u0430\u043a\u0436\u0435<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/devops-ingineer?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_devops_01022022&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u043f\u043e DevOps<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/catalogue?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=sf_allcourses_01022022&amp;utm_term=cat\">\u0412\u0441\u0435 \u043a\u0443\u0440\u0441\u044b<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/649097\/\"> https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/649097\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a \u0441\u0442\u0430\u0440\u0442\u0443 \u0444\u043b\u0430\u0433\u043c\u0430\u043d\u0441\u043a\u043e\u0433\u043e <a href=\"https:\/\/skillfactory.ru\/data-scientist-pro?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_dspr_01022022&amp;utm_term=lead\">\u043a\u0443\u0440\u0441\u0430 \u043f\u043e Data Science<\/a> \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u043c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0431\u0435\u0441\u043f\u0438\u043b\u043e\u0442\u043d\u044b\u043c \u043f\u043e\u043b\u0451\u0442\u0430\u043c \u043d\u0430\u0434 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043b\u0430\u043d\u0435\u0442\u044b. \u0417\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<hr\/>\n<p>\u041b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u2014 \u0440\u0435\u0448\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0438\u043b\u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445 \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u043e\u043f\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u0430\u0440\u0442 \u041c\u0430\u0440\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442.<\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0448\u0443\u043c\u0438\u0445\u0435, \u043f\u043e\u0434\u043d\u044f\u0442\u043e\u0439 \u043e\u0434\u043d\u0438\u043c \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u043c \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0435\u0440\u043e\u043c, \u041c\u0430\u0440\u0441 \u0432\u0441\u0451 \u0447\u0430\u0449\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043d\u043e\u0432\u043e\u0441\u0442\u044f\u0445, \u0438 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0443\u0436\u0435 \u0441\u043a\u043e\u0440\u043e \u043b\u044e\u0434\u0438 \u0431\u0443\u0434\u0443\u0442 \u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u0435\u0433\u043e \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u041c\u0430\u0440\u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0448\u0430\u0440\u043e\u043c \u0432 \u043d\u0435\u0431\u0435, \u043d\u043e \u043c\u0430\u043b\u043e \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435. \u0410 \u0432\u0435\u0434\u044c \u0443 \u041c\u0430\u0440\u0441\u0430 \u0431\u043e\u0433\u0430\u0442\u044b\u0439 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442 \u2014 \u043e\u0442 \u043a\u0430\u043d\u044c\u043e\u043d\u043e\u0432 \u0438 \u043a\u0440\u0430\u0442\u0435\u0440\u043e\u0432 \u0434\u043e \u0432\u0443\u043b\u043a\u0430\u043d\u043e\u0432. <\/p>\n<p>\u0412 \u0445\u043e\u0434\u0435 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0431\u0435\u0441\u043f\u0438\u043b\u043e\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u0451\u0442\u043e\u0432 \u043a\u0430\u0440\u0442\u0443 \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438. \u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u041c\u0430\u0440\u0441. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u0430\u0440\u0442\u0443 \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u0433\u0438\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0431\u044b \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441, \u0435\u0433\u043e \u043e\u043a\u0435\u0430\u043d\u044b \u0438 \u0440\u0435\u043a\u0438. \u0410 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043f\u043e\u0439\u043c\u0451\u043c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<h3>\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0435 \u041c\u0430\u0440\u0441\u0430. \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0421\u0428\u0410 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b <a href=\"https:\/\/astrogeology.usgs.gov\/search\/map\/Mars\/GlobalSurveyor\/MOLA\/Mars_MGS_MOLA_Shade_global_463m\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443: \u043e\u0431\u044a\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0433\u0440\u043e\u043c\u0435\u043d \u2014 \u044d\u0442\u043e 2,3 \u0413\u0431.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 tif, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043e\u043d\u0438 \u0447\u0435\u0440\u0435\u0437 rasterio \u0432 np.array. \u0420\u0430\u0437\u043c\u0435\u0440\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430: 23040 x 46090. \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2014 \u044d\u0442\u043e \u0432\u044b\u0441\u043e\u0442\u044b \u041a\u0440\u0430\u0441\u043d\u043e\u0439 \u043f\u043b\u0430\u043d\u0435\u0442\u044b. \u041d\u0430 \u041c\u0430\u0440\u0441\u0435 \u043d\u0435\u0442 \u043e\u043a\u0435\u0430\u043d\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u0442\u043e\u0447\u043a\u0438 \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u0432\u044b\u0441\u043e\u0442\u044b \u2014 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f. \u0415\u0441\u043b\u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e, \u00ab\u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043c\u043e\u0440\u044f\u00bb \u043d\u0430 \u041c\u0430\u0440\u0441\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0432\u044b\u0441\u043e\u0442\u0430 \u043d\u0430 \u043f\u043b\u0430\u043d\u0435\u0442\u0435.\u00a0\u041e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u2014 \u044d\u0442\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0438\u0436\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b, \u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u2014 \u0432\u044b\u0448\u0435. <\/p>\n<p>\u0413\u043e\u0440\u0430 \u041e\u043b\u0438\u043c\u043f \u2014 \u0441\u0430\u043c\u0430\u044f \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u043d\u0430 \u043f\u043b\u0430\u043d\u0435\u0442\u0435 (21 241 \u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b \u041c\u0430\u0440\u0441\u0430), \u0430 \u0440\u0430\u0432\u043d\u0438\u043d\u0430 \u042d\u043b\u043b\u0430\u0434\u0430 \u2014 \u0441\u0430\u043c\u0430\u044f \u043d\u0438\u0437\u043a\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u2014 \u044d\u0442\u043e \u20138201 \u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u044b\u0441\u043e\u0442\u044b \u041c\u0430\u0440\u0441\u0430. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0430\u043c\u043e\u0439 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0438 \u0441\u0430\u043c\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043d\u0430 \u041c\u0430\u0440\u0441\u0435 (~30 \u043a\u043c) \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u0435\u0436\u0434\u0443 \u042d\u0432\u0435\u0440\u0435\u0441\u0442\u043e\u043c \u0438 \u041c\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u043e\u0439 \u0432\u043f\u0430\u0434\u0438\u043d\u043e\u0439 \u043d\u0430 \u0417\u0435\u043c\u043b\u0435 (~20 \u043a\u043c):<\/p>\n<pre><code class=\"python\">      import rasterio       import numpy as np        mars = rasterio.open('..\/..\/Planets\/mars\/data\/Mars_MGS_MOLA_DEM_mosaic_global_463m.tif')       mars = mars.read()              print(mars.shape)       print(np.amin(mars[0]))       print(np.amax(mars[0]))       print(np.amax(mars[0]) + abs(np.amin(mars[0])))<\/code><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u0434\u0430:<\/p>\n<pre><code>      (1, 23040, 46080)       -8201       21241       29442<\/code><\/pre>\n<p>\u041d\u0430\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u044e\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0441 \u0447\u0435\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e. \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0439\u043c\u0451\u0442 \u043d\u0435\u043c\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041c\u043e\u0436\u043d\u043e \u0443\u0441\u043f\u0435\u0442\u044c \u0432\u044b\u043f\u0438\u0442\u044c \u0447\u0430\u044e.<\/p>\n<pre><code class=\"python\">      import matplotlib.pyplot as plt        fig, ax = plt.subplots()       fig.set_size_inches(14, 7)        ax.imshow(mars[0], cmap=\"viridis\")       ax.axis('off')        plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><figcaption>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430<\/figcaption><\/figure>\n<p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044f \u043d\u0430 \u043d\u0435\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u043b\u0438\u043d\u0435\u0439\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u044b\u0442\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437 \u043d\u0438\u0445 \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f. \u041d\u0430 \u041c\u0430\u0440\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u20138000 \u0438 12 000 \u043c, \u0430 \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0432\u044b\u0441\u043e\u0442\u0430 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043b\u0438\u0436\u0435 \u043a \u0440\u0430\u0432\u043d\u0438\u043d\u0435 \u042d\u043b\u043b\u0430\u0434\u0435, \u0447\u0435\u043c \u043a \u0433\u043e\u0440\u0435 \u041e\u043b\u0438\u043c\u043f.\u00a0<\/p>\n<p>\u0427\u0435\u0442\u044b\u0440\u0435 \u0433\u043e\u0440\u044b \u0431\u043b\u0438\u0436\u0435 \u043a \u0436\u0451\u043b\u0442\u043e\u043c\u0443 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043a\u0440\u043e\u0448\u0435\u0447\u043d\u0443\u044e \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0447\u0430\u0441\u0442\u044c \u043f\u043b\u0430\u043d\u0435\u0442\u044b, \u043d\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u044b \u043f\u043e \u0432\u044b\u0441\u043e\u0442\u0435, \u0438 \u0443 \u043d\u0438\u0445 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u0432\u0441\u0435\u0445 \u0446\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0446\u0432\u0435\u0442\u043e\u0432, \u0447\u0451\u0442\u043a\u043e\u0441\u0442\u044c \u043f\u043b\u043e\u0445\u0430\u044f:<\/p>\n<figure class=\"full-width\"><figcaption>\u041c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435<\/figcaption><\/figure>\n<h2>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442<\/h2>\n<p>\u0420\u0435\u0448\u0438\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0441\u043e\u0437\u0434\u0430\u0432 \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0438 \u043d\u0430\u0440\u0443\u0448\u0438\u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c\u0438 \u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u044b\u0448\u0435 14 000 \u043c \u0438 \u043a\u0443\u0447\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0438\u0436\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u20138201 (\u0441\u0430\u043c\u0430\u044f \u043d\u0438\u0437\u043a\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445) \u0438 14 000 \u043c, \u0430 \u0432\u0441\u0451, \u0447\u0442\u043e \u0432\u044b\u0448\u0435, \u0431\u0443\u0434\u0435\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0446\u0432\u0435\u0442\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b. matplotlib \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0445\u043e\u0440\u043e\u0448\u0430 \u0432 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442\u0430\u0445. \u0412\u043e\u0442 <a href=\"https:\/\/astrogeology.usgs.gov\/search\/map\/Mars\/GlobalSurveyor\/MOLA\/Mars_MGS_MOLA_ClrShade_merge_global_463m\">\u0447\u0442\u043e<\/a> \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432 NASA, \u0438 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0440\u0430\u0437\u0434\u0435\u043b \u043a\u043e\u0434\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430, \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u0435\u0436\u0434\u0443 \u20138210 \u0438 14 000 \u043c \u0432 10-\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u043e\u0441\u043a\u0430\u0445. \u041c\u0435\u0442\u043e\u0434 LinearSegmentedColormap \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0446\u0432\u0435\u0442\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0441 N \u0446\u0432\u0435\u0442\u0430\u043c\u0438, \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430.\u00a0<\/p>\n<p>\u041a\u043b\u0430\u0441\u0441 BoundaryNorm \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430 \u043d\u0435\u0439 \u0446\u0432\u0435\u0442\u0430 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 BoundaryNorm, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0446\u0432\u0435\u0442\u0430 \u0432 10-\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u043e\u0441\u043a\u0430\u0445 \u043c\u0435\u0436\u0434\u0443 \u20138210 \u0438 14 000 \u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 0 \u0434\u043e 10 \u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043e\u0434\u043d\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u043c, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 10 \u0434\u043e 20 \u043c \u2014 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0438 \u0442. \u0434. \u0412\u0441\u0451, \u0447\u0442\u043e \u0432\u044b\u0448\u0435 14 000 \u043c, \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0446\u0432\u0435\u0442\u0435 \u043a\u0430\u0440\u0442\u044b:<\/p>\n<pre><code class=\"python\">from matplotlib.colors import BoundaryNorm, LinearSegmentedColormap import numpy as np  custom_cmap = LinearSegmentedColormap.from_list('mars', ['#162252',                                                          '#104E8B',                                                          '#00B2EE',                                                          '#00FF00',                                                          '#FFFF00',                                                          '#FFA500',                                                          '#FF0000',                                                          '#8b0000',                                                          '#964B00',                                                          '#808080',                                                          '#FFFFFF'], N=2221)  bounds = np.arange(-8210, 14000, 10) norm = BoundaryNorm(bounds, custom_cmap.N)<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u044b\u043c\u0438 \u0432\u044b\u0441\u043e\u0442\u0430\u043c\u0438 \u043c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0426\u0432\u0435\u0442\u043e\u0432 \u0441\u0442\u0430\u043b\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0432\u0435\u0434\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f:<\/p>\n<figure class=\"full-width\"><figcaption>\u041c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435<\/figcaption><\/figure>\n<p>\u0421\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043a\u0430\u0440\u0442\u0443 \u043c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u043b\u044c\u0435\u0444\u0430 \u0441 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u043d\u043e\u0432\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439. \u041f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e: \u044d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0430\u044f \u043a\u0430\u0440\u0442\u0430, \u0430 \u0432\u0435\u0434\u044c \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438:<\/p>\n<pre><code class=\"python\">fig, ax = plt.subplots() fig.set_size_inches(14, 7)  ax.imshow(mars[0], cmap=custom_cmap, norm=norm) ax.axis('off') logo = plt.imread('..\/..\/Branding\/globe_black.png') newax = fig.add_axes([0.82, 0.13, 0.08, 0.08], anchor='NE') newax.imshow(logo) newax.axis('off') txt = ax.text(0.0, 0.02, \"Martian Topography \\n@PythonMaps\",               size=4,               color='white',               transform = ax.transAxes) plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><figcaption>\u0420\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430 \u043d\u0430 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435<\/figcaption><\/figure>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432:<\/p>\n<pre><code class=\"python\">def label_features(ax):       ax.text(5000, 8400, \"Olympus\\n Mons\")      ax.text(7000, 10000, \"Ascreaus\\n Mons\")      ax.text(6200, 11500, \"Pavonis\\n Mons\")      ax.text(5000, 13000, \"Arsia\\n Mons\")      ax.text(8500, 13000, \"Tharsis\", rotation=45)      ax.text(12000, 14000, \"Vallies\\n Marineris\")      ax.text(17000, 18000, \"Argyre\")      ax.text(20000, 2000, \"Vastitas Borealis\")      ax.text(17000, 8500, \"Chryse\\n Planitia\")      ax.text(20000, 5000, \"Acidalia Planitia\")      ax.text(30000, 16500, \"Hellas\", color='white')      ax.text(37000, 5000, \"Utopia\\n Planitia\")      ax.text(41000, 8000, \"Elysium\")      ax.text(34000, 9800, \"Isidis\")      ax.text(7000, 5000, \"Alba Patera\")      ax.text(2000, 6500, \"Amazonis\\n Planitia\")       return ax  fig, ax = plt.subplots() fig.set_size_inches(14, 7)  ax.imshow(mars[0], cmap=custom_cmap, norm=norm) ax = label_features(ax) ax.axis('off') newax = fig.add_axes([0.82, 0.13, 0.08, 0.08], anchor='NE') newax.imshow(logo) newax.axis('off') txt = ax.text(0.0, 0.02, \"Martian Topography \\n@PythonMaps\",               size=4,               color='white',               transform = ax.transAxes) plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><figcaption>\u0420\u0435\u043b\u044c\u0435\u0444 \u041c\u0430\u0440\u0441\u0430 \u0441 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/figcaption><\/figure>\n<h2>\u0422\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u041c\u0430\u0440\u0441\u0430<\/h2>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u041c\u0430\u0440\u0441 \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0437\u0435\u043c\u043d\u044b\u043c. \u0418 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u043a\u0430\u043a\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0442\u0435\u0440\u0440\u0430\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u041c\u0430\u0440\u0441. \u042d\u0442\u043e \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u0441 \u0442\u0451\u043c\u043d\u043e-\u0441\u0438\u043d\u0438\u043c\u0438 \u0438 \u0433\u043e\u043b\u0443\u0431\u044b\u043c\u0438 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0438\u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f \u0438 \u0437\u0435\u043b\u0451\u043d\u043e-\u043a\u043e\u0440\u0438\u0447\u043d\u0435\u0432\u044b\u043c\u0438 \u2014 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u044b\u0448\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f.<\/p>\n<p>\u0412 Matplotlib \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 terrain, \u043d\u043e \u0435\u0451 \u0441\u0438\u043d\u044f\u044f \u0447\u0430\u0441\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u0451\u043c\u043d\u0430\u044f. \u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043a\u0430\u0440\u0442\u0430 ocean. \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0432 \u0438\u0445, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443, \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0437\u0435\u043c\u043d\u044b\u043c \u043a\u0430\u0440\u0442\u0430\u043c.\u00a0\u0426\u0435\u043b\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 BoundaryNorm, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0438\u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 ocean, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0448\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0440\u044f \u2014 \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 terrain.<\/p>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0446\u0432\u0435\u0442\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u043f\u043e \u0448\u043a\u0430\u043b\u0435 \u043e\u0442 0 \u0434\u043e 1. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438\u0437 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0435\u0451 \u0447\u0430\u0441\u0442\u044c.\u00a0\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0438\u0436\u0435 \u0432 plt.cm.ocean(np.linspace(0.2, 0.8, 821)) \u0438\u0437 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b ocean \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441 821 \u0446\u0432\u0435\u0442\u043e\u043c \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u0430 \u0438\u0437 \u0435\u0451 \u0447\u0430\u0441\u0442\u0438 \u043d\u0438\u0436\u0435 0,2 \u0438 \u0432\u044b\u0448\u0435 0,8.\u00a0<\/p>\n<p>\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b terrain, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f 1400 \u0446\u0432\u0435\u0442\u043e\u0432. \u0417\u0430\u0442\u0435\u043c \u044d\u0442\u0438 \u0434\u0432\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u0443 \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 LinearSegmentedColourmap.<\/p>\n<p>\u0420\u0435\u043b\u044c\u0435\u0444 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 821 \u0446\u0432\u0435\u0442\u043e\u043c ocean \u0438 1400 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 terrain. \u041a\u043b\u0430\u0441\u0441 BoundaryNorm \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u043a\u0430\u0440\u0442\u044b \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.\u00a0<\/p>\n<p>\u0412 \u043a\u043e\u0434\u0435 \u043d\u0438\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0441 2221 \u0446\u0432\u0435\u0442\u043e\u043c (821 ocean + 1400 terrain) \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c BoundaryNorm, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439 \u043f\u043e \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u044f\u043c \u2014 821 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0438\u0436\u0435 0 \u0438 1400 \u0432\u044b\u0448\u0435 0.\u00a0\u0412\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0438\u0436\u0435 0 \u0431\u0443\u0434\u0443\u0442 \u0432 \u0446\u0432\u0435\u0442\u0430\u0445 \u0447\u0430\u0441\u0442\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b ocean, \u0430 \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0448\u0435 \u043d\u0443\u043b\u044f \u2014 \u0432 \u0446\u0432\u0435\u0442\u0430\u0445 \u043a\u0430\u0440\u0442\u044b terrain:<\/p>\n<pre><code class=\"python\">colors_undersea = plt.cm.ocean(np.linspace(0.2, 0.8, 821)) undersea_map = LinearSegmentedColormap.from_list('undersea_map', colors_undersea, N=821)  colors_land = plt.cm.terrain(np.linspace(0.25, 1, 1400)) land_map = LinearSegmentedColormap.from_list('land_map', colors_land, N=1400)  colors = np.vstack((colors_undersea, colors_land)) terrain_map = LinearSegmentedColormap.from_list('cut_terrain', colors, N=2221)  bounds = np.arange(-8210, 14000, 10) norm = BoundaryNorm(bounds, terrain_map.N)<\/code><\/pre>\n<figure class=\"full-width\"><figcaption>\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b ocean \u0438 terrain \u0432\u043c\u0435\u0441\u0442\u0435<\/figcaption><\/figure>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u044d\u0442\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0441 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0446\u0432\u0435\u0442\u043e\u0432 \u0434\u0435\u043b\u0430\u044e\u0442 \u041c\u0430\u0440\u0441 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043d\u0430 \u0417\u0435\u043c\u043b\u044e:<\/p>\n<pre><code class=\"python\">def label_features_terrain(ax):     ax.text(5000, 8400, \"Olympus\\n Mons\")     ax.text(7000, 10000, \"Ascreaus\\n Mons\")     ax.text(6200, 11500, \"Pavonis\\n Mons\")     ax.text(5000, 13000,<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-328928","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/328928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=328928"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/328928\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=328928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=328928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=328928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}