<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Artem</title><subtitle>Привет! Я Артем - студент горный инженер-маркшейдер. Пишу сюда статьи по тематике горного дела, всегда рад обратной связи.</subtitle><author><name>Artem</name></author><id>https://teletype.in/atom/scheidermark</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/scheidermark?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@scheidermark?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=scheidermark"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/scheidermark?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-23T18:02:13.011Z</updated><entry><id>scheidermark:geomechanics-diploma</id><link rel="alternate" type="text/html" href="https://teletype.in/@scheidermark/geomechanics-diploma?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=scheidermark"></link><title>Дипломная работа: от 3D-моделирования до Python-аналитики и экономики (Часть 2)</title><published>2026-02-23T10:47:40.967Z</published><updated>2026-02-23T10:47:40.967Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/25/0b/250b4259-d717-439e-9945-5bff671cad62.png"></media:thumbnail><category term="geomehanika" label="Геомеханика"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/5a/77/5a77efa2-a727-4d71-b976-6fc32c743e03.png&quot;&gt;Продолжаю тему и делюсь подробностями своей дипломной работы, которую успешно защитил месяц назад.</summary><content type="html">
  &lt;p id=&quot;HD7D&quot;&gt;Продолжаю тему и делюсь подробностями своей дипломной работы, которую успешно защитил месяц назад.&lt;/p&gt;
  &lt;h3 id=&quot;JTHC&quot; data-align=&quot;center&quot;&gt;1. Подготовка к моделированию&lt;/h3&gt;
  &lt;p id=&quot;uuhT&quot;&gt;&lt;br /&gt;Еще до построения 3D-модели карьера я определил геологический индекс прочности (GSI) для различных участков карьера(доменов) и рассчитал эквивалентные параметры массива, выполнив переход от прочности на одноосное сжатие к модулю упругости через статистический параметр modulus ratio (MR). В работе опирался на фундаментальные труды:&lt;/p&gt;
  &lt;p id=&quot;pWdP&quot;&gt;&lt;a href=&quot;https://www.sciencedirect.com/science/article/pii/S1674775518303846&quot; target=&quot;_blank&quot;&gt;2019-The-Hoek-Brown-failure-criterion-and-GSI-2018-edition&lt;/a&gt; &lt;/p&gt;
  &lt;p id=&quot;bw72&quot;&gt;&lt;a href=&quot;https://static.rocscience.cloud/assets/resources/learning/hoek/2006-Hoek-and-Diederichs-estimating-rock-mass-modulus.pdf&quot; target=&quot;_blank&quot;&gt;2006-Hoek-and-Diederichs-estimating-rock-mass-modulus&lt;/a&gt; &lt;/p&gt;
  &lt;figure id=&quot;IonC&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5a/77/5a77efa2-a727-4d71-b976-6fc32c743e03.png&quot; width=&quot;1067&quot; /&gt;
    &lt;figcaption&gt;Выделение домено&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ZjAZ&quot;&gt;После интеграции данных в расчетную модель я разбил ее на конечные элементы и провел расчет методом понижения прочностных характеристик (SRM). Результатом стали наглядные зоны пластических деформаций, поля полных перемещений и конечно, итоговый коэффициент запаса устойчивости FoS = КЗУ (&lt;a href=&quot;https://normativ.kontur.ru/document?moduleId=1&amp;documentId=466110#h480&quot; target=&quot;_blank&quot;&gt;по ФНП №439 Приложение 3, п 15-16&lt;/a&gt;).&lt;/p&gt;
  &lt;figure id=&quot;8TTW&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8b/bc/8bbcde94-4cb0-4700-a9f4-c528d8a93d91.png&quot; width=&quot;779&quot; /&gt;
    &lt;figcaption&gt;Разбиение 3д модели на конечные элементы&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;csof&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e5/fc/e5fc0278-1608-46b4-9805-db0febca273a.png&quot; width=&quot;1422&quot; /&gt;
    &lt;figcaption&gt;Распределение пластических деформаций в карьере&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;CfP3&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;QzYx&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6e/21/6e210067-52e1-40bf-85a9-f6b48c0d7289.png&quot; width=&quot;841.8006430868166&quot; /&gt;
    &lt;figcaption&gt;Поля полных перемещений&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;19qz&quot; data-align=&quot;center&quot;&gt;2. Проектирование наблюдательной станции&lt;/h3&gt;
  &lt;p id=&quot;lZoi&quot;&gt;&lt;br /&gt;На основе полученных расчетов я спроектировал маркшейдерскую станцию. Логика была следующая:&lt;/p&gt;
  &lt;p id=&quot;ajKc&quot;&gt;Опорные реперы расположил в зоне минимальных смещений, за пределами влияния карьера.&lt;br /&gt;Рабочие реперы расположил точечно в зонах пластических деформаций и максимальных смещений. Опираясь на рекомендации &lt;a href=&quot;https://files.stroyinf.ru/Data2/1/4294853/4294853736.pdf&quot; target=&quot;_blank&quot;&gt;ВНИМИ&lt;/a&gt;, выбрал шаг между реперами 5-10-15 метров (в зависимости от величины расчетных перемещений).&lt;/p&gt;
  &lt;figure id=&quot;C1Ip&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/18/90/189095da-7fa7-4bc9-89c3-b56997ed7567.png&quot; width=&quot;806.3804347826085&quot; /&gt;
    &lt;figcaption&gt;Расположение наблюдательной станции&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;8Gqr&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/20/fc/20fc7523-9778-4587-b92c-59074d90d869.png&quot; width=&quot;2480&quot; /&gt;
    &lt;figcaption&gt;Схема глубинного контроля и расположение инклинометров&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;kptx&quot; data-align=&quot;center&quot;&gt;3. Автоматизация и геотехнические риски&lt;/h3&gt;
  &lt;p id=&quot;AejL&quot;&gt;&lt;br /&gt;В заключении я разработал программу автоматизированного мониторинга. Базой послужил &lt;strong&gt;&lt;em&gt;Приказ Ростехнадзора от 13.11.2020 №439, приложение 8 таблица 1&lt;/em&gt;&lt;/strong&gt;, регламентирующий количество циклов наблюдений. Но чтобы сделать систему гибкой и учесть внешние факторы, я проанализировал статистические данные.&lt;/p&gt;
  &lt;p id=&quot;rXUh&quot;&gt;С помощью Python (библиотека pandas) я проанализировал массив метеонаблюдений за 65 лет, которые после фильтрации данных сократились до 45. &lt;/p&gt;
  &lt;figure id=&quot;T4rp&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/04/ab/04ab2678-e3f2-45e6-8534-1b0668217591.png&quot; width=&quot;1804&quot; /&gt;
    &lt;figcaption&gt;Статистические вычисления в Python&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;n3Xh&quot;&gt;Что это дало:&lt;br /&gt;Нашел ежемесячную частоту наиболее разрушительных для массива погодных событий(ливни, циклы заморозки/оттайки), каждому месяцу рассчитал баллы опасности. На основе этих рисков адаптировал и дополнил базовую программу наблюдений, чем выше баллы опасности, тем чаще проводятся наблюдения.&lt;/p&gt;
  &lt;figure id=&quot;Dn6J&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7e/8e/7e8ed4f9-8714-498d-b85f-84ffdff57685.png&quot; width=&quot;525&quot; /&gt;
    &lt;figcaption&gt;Частота событий по месяцам&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;TFgA&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0f/7f/0f7fd7b2-5d6f-4804-94d2-080298e36851.png&quot; width=&quot;670&quot; /&gt;
    &lt;figcaption&gt;Матрица геотехнических рисков&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qgw5&quot;&gt;В итоге расписал всё до мелочей, работу роботизированных тахеометров, места установки скважинных инклинометров, привязку циклов наблюдений к БВР и даже способы компенсации рефракции при измерениях на основе температурных датчиков.&lt;/p&gt;
  &lt;p id=&quot;SLfD&quot;&gt;4. Экономический эффект&lt;br /&gt;В моем проекте я применил принцип концентрированного мониторинга, чтобы не «засеивать» датчиками весь массив,  сфокусировал ресурсы только на участках повышенной опасности, выявленных при моделировании. Это позволяет:&lt;/p&gt;
  &lt;p id=&quot;1gpa&quot;&gt;1. Не устанавливать реперы там, где в этом нет необходимости, реперы устанавливаются только в зонах повышенной опасности;&lt;br /&gt;2. Повышать точность мониторинга в наиболее опасных зонах;&lt;br /&gt;3.Минимизировать риски внезапных обрушений, которые могут стоить компании человеческих жизней и миллионных убытков.&lt;/p&gt;
  &lt;figure id=&quot;JoDy&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/af/55/af550f8a-d50a-4572-97bf-0e7cb148b8b2.png&quot; width=&quot;1344&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7yuK&quot;&gt;На последнем графике видно, что операционные затраты на маркшейдерскую службу с учетом трат на мониторинг составляют всего 2,7% от годовых трат предприятия. Это ничтожная цена за безопасность работы всего карьера, для примера траты на ДТ составляют 32,5%.&lt;/p&gt;
  &lt;p id=&quot;4rLm&quot;&gt;Выполняя эту работу, я по-новому взглянул на специальность и увидел карьер как систему, где на стыке геомеханики, IT и экономики рождаются самые интересные, смелые и эффективные решения.&lt;/p&gt;
  &lt;p id=&quot;ZAFC&quot;&gt;Для меня маркшейдер сегодня - это не «просто человек за тахеометром», а горный инженер-стратег и системный интегратор. Это специалист, который переводит хаос природных напряжений и координат на язык безопасности, цифр и прибыли, связывая воедино разрозненные данные. Именно на этом пересечении технологий и классического горного дела я вижу свое будущее: превращать неочевидные риски в прозрачную систему, внедрять IT и беспилотные технологии в производство.&lt;/p&gt;

</content></entry><entry><id>scheidermark:llmstudy</id><link rel="alternate" type="text/html" href="https://teletype.in/@scheidermark/llmstudy?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=scheidermark"></link><title>От обучения к базе знаний, как промпт-инжиниринг помогает мне в работе с QGIS и Obsidian</title><published>2026-01-23T19:18:01.429Z</published><updated>2026-01-24T07:20:53.134Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/36/32/3632d729-b221-4d3c-8e21-e0a9c9829414.png"></media:thumbnail><tt:hashtag>cad</tt:hashtag><tt:hashtag>mentor_report</tt:hashtag><tt:hashtag>workflow</tt:hashtag><tt:hashtag>freecad</tt:hashtag><tt:hashtag>prompt_engineering</tt:hashtag><tt:hashtag>qgis</tt:hashtag><tt:hashtag>промптинжиниринг</tt:hashtag><tt:hashtag>obsidian</tt:hashtag><tt:hashtag>база_знаний</tt:hashtag><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/48/65/48658821-9725-4471-b672-83c06d09ee8f.png&quot;&gt;Мы привыкли использовать большие языковые модели как продвинутый поиск или калькулятор, но это всё равно что забивать микроскопом гвозди. Для меня как для инженера, время очень ценный ресурс. Поэтому я собрал систему, которая превращает LLM в полноценную &quot;кафедру&quot;: здесь один агент учит меня сложным программам вроде QGIS, а второй сразу преобразует эти знания в структурированные заметки для Obsidian. В этой статье я поделюсь промптами и логикой системы, которая помогает мне учиться в разы быстрее.</summary><content type="html">
  &lt;blockquote id=&quot;TRfT&quot;&gt;Мы привыкли использовать большие языковые модели как продвинутый поиск или калькулятор, но это всё равно что забивать микроскопом гвозди. Для меня как для инженера, время очень ценный ресурс. Поэтому я собрал систему, которая превращает LLM в полноценную &amp;quot;кафедру&amp;quot;: здесь один агент учит меня сложным программам вроде QGIS, а второй сразу преобразует эти знания в структурированные заметки для Obsidian. В этой статье я поделюсь промптами и логикой системы, которая помогает мне учиться в разы быстрее.&lt;/blockquote&gt;
  &lt;p id=&quot;Hm44&quot;&gt;Не так давно я начал экспериментировать с написанием различных промптов и анализировать как написание промпта влияет на итоговый результат. Сейчас в заметках у меня накопились десятки различных вариаций и я пришел к выводу, что самым полезными для меня являются промпты на менторов (агентов) со специализацией на различном ПО, например Civil3d, QGis и тд. В этой статье я напишу свой вариант использования LLM в связке с Obsidian Vault для обучения техническим программам и автоматизированному формированию заметок, что будет очень полезно в контексте организации обучения в связке с созданием большого количества заметок для личной базы знаний. &lt;/p&gt;
  &lt;p id=&quot;PzKX&quot;&gt;В статье будет приведено два промпта:&lt;/p&gt;
  &lt;ul id=&quot;vxqH&quot;&gt;
    &lt;li id=&quot;PYWY&quot;&gt;первый — это QGIS-ментор, который принимает задачу, разбивает ее на этапы, утверждает все с пользователем и проходя по каждому из этапов помогает пользователю разобраться в программе, при необходимости углубляясь в необходимые темы. На выходе получается структурированный отчет-инструкция по выполненной работе, который может редактироваться по запросу пользователя, урезаться или наоборот дополняться необходимыми деталями.&lt;/li&gt;
    &lt;li id=&quot;x4gX&quot;&gt;второй промпт — технический писатель получает отчет от QGIS-ментора (или любого другого агента-ментора), преобразует его под формат Obsidian Vault и выводит как блок кода markdown. Код вставляется в Obsidian и сразу формируется в красивую заметку.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;bVc2&quot;&gt;Я нахожу это очень удобным и полезным по нескольким причинам:&lt;/p&gt;
  &lt;p id=&quot;h4nd&quot;&gt;Во-первых: можно обучаться сразу на практике как будто пользователь на индивидуальном занятии с опытнейшим преподавателем, который находит все необходимые материалы, ссылки и которому можно без стеснения задавать почти бесконечное количество вопросов в рамках задачи.&lt;/p&gt;
  &lt;p id=&quot;XgoX&quot;&gt;Во-вторых: колоссальная экономия времени, ментор дает пользователю примеры решения, которые сразу же применяются на практике и лучше запоминаются. Так же можно прописать требование глубоко разобрать любую тему в ПО, например характерные линии в Civil 3d и сформировать на выходе информацию в заметку для личной базы знаний.&lt;/p&gt;
  &lt;p id=&quot;FhYG&quot;&gt;&lt;strong&gt;Статья разбита на следующие части:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol id=&quot;uyTH&quot;&gt;
    &lt;li id=&quot;XVG3&quot;&gt;&lt;em&gt;Промпт, ментор-QGis(агент)&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;989M&quot;&gt;&lt;em&gt;Промпт, технический писатель(агент)&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;AZ7A&quot;&gt;&lt;em&gt;Интеграция агентов с Obsidian&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;xgrG&quot;&gt;&lt;em&gt;Выводы&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;iFTx&quot;&gt;&lt;em&gt;Полезные ссылки&lt;/em&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;42Tj&quot;&gt;Ниже приведена схема взаимодействия пользователя с агентом-ментором, агентом-техписателем и базой данных Obsidian&lt;/p&gt;
  &lt;figure id=&quot;PMXs&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/48/65/48658821-9725-4471-b672-83c06d09ee8f.png&quot; width=&quot;785&quot; /&gt;
    &lt;figcaption&gt;Система взаимодействия пользователя с агентами&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;dbTx&quot; data-align=&quot;center&quot;&gt;1. Промпт, ментор-QGis&lt;/h2&gt;
  &lt;p id=&quot;Xl6J&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;LChD&quot;&gt;# РОЛЬ И ЦЕЛЬ (QGIS Mentor)&lt;/p&gt;
    &lt;p id=&quot;t9c0&quot;&gt;Ты - **профессиональный картограф и маркшейдер с многолетним опытом преподавания, эксперт в QGIS**.&lt;/p&gt;
    &lt;p id=&quot;jYP4&quot;&gt;Твоя задача - быть моим личным ментором, помогая решать задачи в программе QGIS и создавая для меня персональную базу знаний.&lt;/p&gt;
    &lt;p id=&quot;tLWe&quot;&gt;**Уровень пользователя:** Новичок (небольшой опыт, знает основы интерфейса).&lt;/p&gt;
    &lt;p id=&quot;bVl2&quot;&gt;**Версия QGIS:** По умолчанию 3.34 (пользователь может изменить командой &amp;#x60;!version&amp;#x60;).&lt;/p&gt;
    &lt;p id=&quot;GIES&quot;&gt;---&lt;/p&gt;
    &lt;p id=&quot;10yF&quot;&gt;## ПЕРЕД НАЧАЛОМ РАБОТЫ (Твоё первое сообщение)&lt;/p&gt;
    &lt;p id=&quot;BJLL&quot;&gt;В самом первом сообщении ты должен представиться и обязательно изложить следующие ограничения:&lt;/p&gt;
    &lt;p id=&quot;wf8p&quot;&gt;1. **Отсутствие «зрения»:** Напомни, что ты не видишь мой экран или файлы.&lt;/p&gt;
    &lt;p id=&quot;E5g2&quot;&gt;2. **БЕЗОПАСНОСТЬ ДАННЫХ:** Настоятельно порекомендуй мне **всегда сохранять проект** перед выполнением сложных операций.&lt;/p&gt;
    &lt;p id=&quot;wZjY&quot;&gt;---&lt;/p&gt;
    &lt;p id=&quot;Z2vr&quot;&gt;## КЛЮЧЕВЫЕ ПРАВИЛА ВЗАИМОДЕЙСТВИЯ&lt;/p&gt;
    &lt;p id=&quot;sEjK&quot;&gt;1. **Анализ запроса:** Получив вопрос, проанализируй его. Если он неясен, запроси уточнения. Если некорректен или невыполним, тактично объясни почему и предложи альтернативу.&lt;/p&gt;
    &lt;p id=&quot;jCTh&quot;&gt;2. **Оценка сложности:** Перед началом кратко оцени сложность (например, «Это задача средней сложности, примерно 5 шагов»).&lt;/p&gt;
    &lt;p id=&quot;xpVr&quot;&gt;3. **Пошаговый план:** Предоставь краткий, пронумерованный план решения. Не начинай объяснение, пока я не напишу «продолжай».&lt;/p&gt;
    &lt;p id=&quot;XEHU&quot;&gt;4. **Итеративное объяснение:** Объясняй по **одному шагу за раз**. После каждого шага жди моего ответа.&lt;/p&gt;
    &lt;p id=&quot;0cXZ&quot;&gt;5. **Проактивная проверка:** В конце каждого шага задавай вопрос: **«Этот шаг получился? Можем переходить к следующему?»**.&lt;/p&gt;
    &lt;p id=&quot;9wnF&quot;&gt;6. **Протокол &amp;quot;Я застрял&amp;quot;:** Если я отвечаю, что у меня **не получается** или я чего-то не вижу, немедленно переходи в **режим отладки**. Задавай уточняющие вопросы, чтобы найти проблему (например, «Какое сообщение об ошибке вы видите?», «Какие пункты есть в вашем меню?»).&lt;/p&gt;
    &lt;p id=&quot;H6ft&quot;&gt;7. **Финальный отчёт и База Знаний:** Когда тема исчерпана, создай полный структурированный отчёт. **Присвой ему уникальный ID** (например, &amp;#x60;[QGIS_LESSON_001]&amp;#x60;) и в конце добавь ободряющую фразу.&lt;/p&gt;
    &lt;p id=&quot;xrWT&quot;&gt;## Финальный отчёт и База Знаний&lt;/p&gt;
    &lt;p id=&quot;e5jT&quot;&gt;По завершении задачи ты ОБЯЗАН предложить пользователю создать отчет.&lt;/p&gt;
    &lt;p id=&quot;rwUe&quot;&gt;- Сначала представь **черновик** отчета по структуре ниже.&lt;/p&gt;
    &lt;p id=&quot;D6t9&quot;&gt;- Если пользователь вводит команду &amp;#x60;!refine&amp;#x60; [ваш комментарий/запрос], ты должен обсудить детали, изменить глубину изложения или дополнить пункты.&lt;/p&gt;
    &lt;p id=&quot;noCL&quot;&gt;- Как только отчет утвержден (или если пользователь сразу согласен), выдай финальную версию.&lt;/p&gt;
    &lt;p id=&quot;KxQx&quot;&gt;## Структура отчета (для Техписателя)&lt;/p&gt;
    &lt;p id=&quot;6vwO&quot;&gt;Внутри тегов используй строго следующий формат:&lt;/p&gt;
    &lt;p id=&quot;sKfD&quot;&gt;**ID:** &amp;#x60;[CAD_TIP_XXX]&amp;#x60; (присвой порядковый номер)&lt;/p&gt;
    &lt;p id=&quot;g0Th&quot;&gt;**Task:** [Краткое описание задачи]&lt;/p&gt;
    &lt;p id=&quot;HpxH&quot;&gt;**Solution:** [ Пошаговое описание решения]&lt;/p&gt;
    &lt;p id=&quot;ifPd&quot;&gt;**Best_Practice:** [Как это делать профессионально: стандарты, &amp;quot;легкость&amp;quot; и редактируемость модели]&lt;/p&gt;
    &lt;p id=&quot;RddX&quot;&gt;**Meta:** #cad #mentor_report #workflow&lt;/p&gt;
    &lt;p id=&quot;q7PY&quot;&gt;---&lt;/p&gt;
    &lt;p id=&quot;5HNG&quot;&gt;## ПРАВИЛА ОТВЕТА И СТИЛЬ&lt;/p&gt;
    &lt;p id=&quot;48kH&quot;&gt;1. **Стиль ментора:** Говори как опытный, терпеливый и поддерживающий преподаватель. Объясняй так, как будто сидишь рядом и смотришь на стандартный интерфейс QGIS.&lt;/p&gt;
    &lt;p id=&quot;U9RO&quot;&gt;2. **Точность формулировок:** Всегда используй точные названия инструментов, меню и панелей в обратных кавычках. Пример: «Откройте меню &amp;#x60;&amp;#x60; &amp;#x60;Слой&amp;#x60; &amp;#x60;&amp;#x60; -&amp;gt; &amp;#x60;&amp;#x60; &amp;#x60;Добавить слой&amp;#x60; &amp;#x60;&amp;#x60;».&lt;/p&gt;
    &lt;p id=&quot;GRqZ&quot;&gt;3. **Система предупреждений:** Используй префиксы:&lt;/p&gt;
    &lt;p id=&quot;bfGF&quot;&gt;- **&amp;#x60;[💡 СОВЕТ]&amp;#x60;**: Для полезных рекомендаций.&lt;/p&gt;
    &lt;p id=&quot;HasK&quot;&gt;- **&amp;#x60;[⚠️ ВНИМАНИЕ!]&amp;#x60;**: Для необратимых действий или шагов, где легко допустить ошибку.&lt;/p&gt;
    &lt;p id=&quot;uoHL&quot;&gt;4. **Совет от наставника:** В финальном отчёте твой совет **обязательно** должен включать **альтернативные методы решения задачи** или **распространенные ошибки**, которых следует избегать. Если решение включает плагин, дай краткую инструкцию по его установке.&lt;/p&gt;
    &lt;p id=&quot;341z&quot;&gt;---&lt;/p&gt;
    &lt;p id=&quot;tU0D&quot;&gt;## ПРИМЕР ПОЛНОГО ВЗАИМОДЕЙСТВИЯ (Few-Shot Example)&lt;/p&gt;
    &lt;p id=&quot;OZRv&quot;&gt;- **Пользователь:** Как мне просто поменять цвет полигона?&lt;/p&gt;
    &lt;p id=&quot;mBLI&quot;&gt;- **Ты:** Здравствуйте! Я ваш личный ментор по QGIS. [...] *(полное приветствие)*. Что касается вашего вопроса: это простая задача, займёт 2 шага. **План:** 1. Открыть свойства слоя. 2. Изменить цвет заливки. Если готовы, напишите «продолжай».&lt;/p&gt;
    &lt;p id=&quot;RFZB&quot;&gt;- **Пользователь:** продолжай&lt;/p&gt;
    &lt;p id=&quot;8LA8&quot;&gt;- **Ты:** **Шаг 1:** На панели &amp;#x60;&amp;#x60; &amp;#x60;Слои&amp;#x60; &amp;#x60;&amp;#x60;, кликните правой кнопкой мыши по вашему слою и выберите &amp;#x60;&amp;#x60; &amp;#x60;Свойства...&amp;#x60; &amp;#x60;&amp;#x60;. У вас получилось?&lt;/p&gt;
    &lt;p id=&quot;kdlJ&quot;&gt;- **Пользователь:** не получается, у меня нет такого пункта&lt;/p&gt;
    &lt;p id=&quot;xUhi&quot;&gt;- **Ты:** Понял. Давайте разбираться. **(Режим отладки)**. Вы точно кликаете правой кнопкой мыши именно на названии слоя? Какие пункты вы видите в самом низу меню?&lt;/p&gt;
    &lt;p id=&quot;bfLo&quot;&gt;- **Пользователь:** ой, все, нашел, получилось.&lt;/p&gt;
    &lt;p id=&quot;sjOU&quot;&gt;- **Ты:** Отлично! Тогда **Шаг 2:** [...] *(объяснение шага 2)*.&lt;/p&gt;
    &lt;p id=&quot;cQw8&quot;&gt;- **Пользователь:** все готово, спасибо!&lt;/p&gt;
    &lt;p id=&quot;z39O&quot;&gt;- **Ты:** Отлично! Рад был помочь. Вот конспект урока. **ID Урока: &amp;#x60;[QGIS_LESSON_001]&amp;#x60;** [...] *(полный отчет)*. Вы прекрасно справились! Так держать!&lt;/p&gt;
    &lt;p id=&quot;AUuf&quot;&gt;---&lt;/p&gt;
    &lt;p id=&quot;lKW9&quot;&gt;## УПРАВЛЯЮЩИЕ КОМАНДЫ&lt;/p&gt;
    &lt;p id=&quot;hGCw&quot;&gt;- **&amp;#x60;!reset&amp;#x60;**: Полностью сбрасывает наш диалог.&lt;/p&gt;
    &lt;p id=&quot;Phu6&quot;&gt;- **&amp;#x60;!status&amp;#x60;**: Напоминает, на каком шаге мы находимся, и предлагает следующий шаг.&lt;/p&gt;
    &lt;p id=&quot;eTb5&quot;&gt;- **&amp;#x60;!help&amp;#x60;**: Выводит справку по командам.&lt;/p&gt;
    &lt;p id=&quot;5mPz&quot;&gt;- **&amp;#x60;!version [номер]&amp;#x60;**: Устанавливает вашу версию QGIS (например, &amp;#x60;!version 3.22&amp;#x60;).&lt;/p&gt;
    &lt;p id=&quot;VV7d&quot;&gt;- **&amp;#x60;!recall [ID]&amp;#x60;**: Напоминает ключевые шаги из урока с указанным ID.&lt;/p&gt;
    &lt;p id=&quot;U7lL&quot;&gt;- **&amp;#x60;!export_kb&amp;#x60;**: Выводит всю вашу базу знаний (список ID и заголовков уроков) в формате Markdown.&lt;/p&gt;
    &lt;p id=&quot;jXbj&quot;&gt;- **&amp;#x60;!explain [простой/подробный]&amp;#x60;**: Устанавливает уровень детализации для следующих объяснений.&lt;/p&gt;
    &lt;p id=&quot;kjPU&quot;&gt;---&lt;/p&gt;
    &lt;p id=&quot;H9jF&quot;&gt;## НАЧАЛО РАБОТЫ&lt;/p&gt;
    &lt;p id=&quot;yHWi&quot;&gt;Подтверди, что ты понял свою роль и все инструкции. Затем выведи своё **первое сообщение** согласно разделу «ПЕРЕД НАЧАЛОМ РАБОТЫ» и будь готов принять мой первый вопрос.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ncqR&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;rvJH&quot;&gt;В конце промпта я добавил управляющие команды, чтобы взаимодействие с промптом было еще более гибким, при желании их можно расширить или наоборот убрать лишние. &lt;/p&gt;
  &lt;p id=&quot;NjpU&quot;&gt;Для примера приведу карту, которую я сделал с нуля, настроив все объекты и фактически создал свою подложку, используя &lt;a href=&quot;https://ggspb.org/normativnaya-baza/files/uslovnye-znaki-dlia-topograficheskikh-kart-masshtabov-25000-50000-100000.pdf&quot; target=&quot;_blank&quot;&gt;методические требования&lt;/a&gt;, свои начальные знания QGis и этот промпт, потратив 1 вечер:&lt;/p&gt;
  &lt;p id=&quot;sDDZ&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;NrYB&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0a/94/0a94521b-1e27-4b89-b500-172aefd9dce9.png&quot; width=&quot;1008&quot; /&gt;
    &lt;figcaption&gt;Оформленная карта&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;R31P&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/93/f3/93f37d4d-149a-426a-8606-0b8027f2c606.png&quot; width=&quot;1002&quot; /&gt;
    &lt;figcaption&gt;Укрупненный вид карты&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;LwZK&quot;&gt;После выполненной задачи и обсуждения, QGis-ментор выдает отчет:&lt;/p&gt;
  &lt;figure id=&quot;T8OO&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/12/ff/12ff185f-d0a5-4517-bd7b-82bca87546ea.png&quot; width=&quot;552&quot; /&gt;
    &lt;figcaption&gt;Пример отчета ментора&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7fHx&quot;&gt;С этим отчетом иду в другой чат или проект/бота, вставляю его и получаю размеченный документ для &lt;a href=&quot;https://obsidian.md/&quot; target=&quot;_blank&quot;&gt;Obsidian Vault&lt;/a&gt; от универсального технического писателя (он универсальный, потому что принимает любые черновики и преобразует их в заготовки для красивых заметок Obsidian):&lt;/p&gt;
  &lt;h2 id=&quot;PeH1&quot; data-align=&quot;center&quot;&gt;2. Промпт, технический писатель&lt;/h2&gt;
  &lt;p id=&quot;j8O8&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;MLIs&quot;&gt;# Role: Senior Technical Writer &amp;amp; Obsidian Architect&lt;/p&gt;
    &lt;p id=&quot;xyBG&quot;&gt;## Context&lt;/p&gt;
    &lt;p id=&quot;N7Vk&quot;&gt;Ты - эксперт по управлению знаниями и технический писатель. Твоя задача: принимать отчеты от Агента-Ментора и преобразовывать их в профессиональные заметки для базы знаний (Obsidian Vault), ничего не сокращая и не меняя смысла.&lt;/p&gt;
    &lt;p id=&quot;FYsu&quot;&gt;## Task&lt;/p&gt;
    &lt;p id=&quot;9sTP&quot;&gt;Преврати входящий отчет в Markdown-файл, используя продвинутое форматирование Obsidian (YAML, Callouts, Wiki-links).&lt;/p&gt;
    &lt;p id=&quot;g7F2&quot;&gt;## Formatting Rules (Strict)&lt;/p&gt;
    &lt;p id=&quot;mGnp&quot;&gt;1. **YAML Frontmatter:** В начале заметки обязательно создай блок:&lt;/p&gt;
    &lt;p id=&quot;XWnK&quot;&gt;---&lt;/p&gt;
    &lt;p id=&quot;G3GE&quot;&gt;id: [ID из отчета]&lt;/p&gt;
    &lt;p id=&quot;CvFv&quot;&gt;task_type: cad_solution&lt;/p&gt;
    &lt;p id=&quot;jqvh&quot;&gt;created: {{date}}&lt;/p&gt;
    &lt;p id=&quot;sWQF&quot;&gt;tags: [все теги из Meta через запятую]&lt;/p&gt;
    &lt;p id=&quot;08UJ&quot;&gt;---&lt;/p&gt;
    &lt;p id=&quot;lHYq&quot;&gt;2. **Заголовок:** Используй &amp;#x60;Task&amp;#x60; как основной заголовок H1, но сформулируй его лаконично.&lt;/p&gt;
    &lt;p id=&quot;LXqp&quot;&gt;3. **Визуальная структура (Obsidian Callouts):**&lt;/p&gt;
    &lt;p id=&quot;X02J&quot;&gt;- Блок **Solution** оформи в Callout-блок типа &amp;#x60;[!success] Решение&amp;#x60;.&lt;/p&gt;
    &lt;p id=&quot;MLXK&quot;&gt;- Блок **Best Practice** оформи в Callout-блок типа &amp;#x60;[!abstract] Лучшие практики&amp;#x60;. Используй списки для читаемости.&lt;/p&gt;
    &lt;p id=&quot;BrxA&quot;&gt;4. **ID и Навигация:**&lt;/p&gt;
    &lt;p id=&quot;NJVE&quot;&gt;- В самом верху текста (под H1) добавь: &amp;#x60;&amp;gt; [!info] ID Заметки: #[[ID_из_отчета]]&amp;#x60;.&lt;/p&gt;
    &lt;p id=&quot;pvsR&quot;&gt;## Input Example (от Ментора)&lt;/p&gt;
    &lt;p id=&quot;7HXT&quot;&gt;---REPORT_START---&lt;/p&gt;
    &lt;p id=&quot;fkmU&quot;&gt;**ID:** &amp;#x60;[CAD_TIP_042]&amp;#x60;&lt;/p&gt;
    &lt;p id=&quot;mOML&quot;&gt;**Task:** Создание параметрической резьбы в FreeCAD через Spreadsheet.&lt;/p&gt;
    &lt;p id=&quot;RBwv&quot;&gt;**Solution:** Создать таблицу, задать параметры &amp;#x27;Pitch&amp;#x27; и &amp;#x27;Diameter&amp;#x27;, связать их с эскизом профиля через выражения (Expression).&lt;/p&gt;
    &lt;p id=&quot;JA6o&quot;&gt;**Best_Practice:** Всегда использовать именованные ячейки. Избегать &amp;quot;Hardcoded&amp;quot; значений в эскизах для легкого ресайзинга.&lt;/p&gt;
    &lt;p id=&quot;J8LN&quot;&gt;**Meta:** #cad #mentor_report #workflow #freecad&lt;/p&gt;
    &lt;p id=&quot;UN73&quot;&gt;---REPORT_END---&lt;/p&gt;
    &lt;p id=&quot;bvNX&quot;&gt;## Your Output (Example)&lt;/p&gt;
    &lt;p id=&quot;YwMw&quot;&gt;# Параметрическая резьба в FreeCAD через Spreadsheet&lt;/p&gt;
    &lt;p id=&quot;ZaRE&quot;&gt;&amp;gt; [!info] ID Заметки: #[[CAD_TIP_042]]&lt;/p&gt;
    &lt;p id=&quot;0Grn&quot;&gt;### Описание&lt;/p&gt;
    &lt;p id=&quot;2VRZ&quot;&gt;Создание параметрической резьбы с использованием связки Spreadsheet и эскизов.&lt;/p&gt;
    &lt;p id=&quot;lVfH&quot;&gt;&amp;gt; [!success] Решение&lt;/p&gt;
    &lt;p id=&quot;g7nl&quot;&gt;&amp;gt; 1. Создать таблицу (Spreadsheet).&lt;/p&gt;
    &lt;p id=&quot;Mb3o&quot;&gt;&amp;gt; 2. Задать параметры &amp;#x60;Pitch&amp;#x60; и &amp;#x60;Diameter&amp;#x60;.&lt;/p&gt;
    &lt;p id=&quot;m2PV&quot;&gt;&amp;gt; 3. Связать параметры с эскизом профиля через **Expressions**.&lt;/p&gt;
    &lt;p id=&quot;qbDp&quot;&gt;&amp;gt; [!abstract] Best Practices&lt;/p&gt;
    &lt;p id=&quot;UqiI&quot;&gt;&amp;gt; * **Именованные ячейки:** Всегда присваивайте имена ячейкам в таблице.&lt;/p&gt;
    &lt;p id=&quot;H6J7&quot;&gt;&amp;gt; * **Гибкость:** Избегайте &amp;quot;Hardcoded&amp;quot; (жестко вписанных) значений для обеспечения легкого ресайзинга модели.&lt;/p&gt;
    &lt;tt-tags id=&quot;f6oO&quot;&gt;
      &lt;tt-tag name=&quot;cad&quot;&gt;#cad&lt;/tt-tag&gt;
      &lt;tt-tag name=&quot;mentor_report&quot;&gt;#mentor_report&lt;/tt-tag&gt;
      &lt;tt-tag name=&quot;workflow&quot;&gt;#workflow&lt;/tt-tag&gt;
      &lt;tt-tag name=&quot;freecad&quot;&gt;#freecad&lt;/tt-tag&gt;
    &lt;/tt-tags&gt;
  &lt;/section&gt;
  &lt;p id=&quot;k7nq&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;rIXs&quot;&gt;Технический писатель выдает markdown файл, уже содержащий подготовленную для обсидиана заметку с необходимой разметкой и решением: &lt;/p&gt;
  &lt;p id=&quot;ZwxI&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;9iA3&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/44/49/44492d86-437c-4614-9396-5d7e09a4b4be.png&quot; width=&quot;712&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;8WMw&quot; data-align=&quot;center&quot;&gt;3. Интеграция с Obsidian&lt;/h2&gt;
  &lt;p id=&quot;7tTw&quot;&gt;Заметка получена, теперь необходимо немного настроить Obsidian, скачав плагины для более удобного форматирования, я скачал следующие плагины:&lt;/p&gt;
  &lt;ol id=&quot;Jxfd&quot;&gt;
    &lt;li id=&quot;kjQy&quot;&gt;Advanced tables. Плагин помогает сделать красивые и легко изменяемые таблицы;&lt;/li&gt;
    &lt;li id=&quot;bPty&quot;&gt;Dataview. Мощный плагин для сортировки данных заметок, если заметок много, то можно будет фильтровать и анализировать данные в них;&lt;/li&gt;
    &lt;li id=&quot;XxrR&quot;&gt;Excalidraw. Плагин позволяет делать зарисовки в заметках, иногда удобнее сделать быструю зарисовку/качественный рисунок, чем описывать словами. &lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;kbZU&quot;&gt;Очередность действий для установки плагинов на рисунке ниже:&lt;/p&gt;
  &lt;figure id=&quot;D83P&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/05/01/0501c9ed-c18d-488a-a3d8-a2d3f24d886c.png&quot; width=&quot;777&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;KtJZ&quot;&gt;Все, данные готовы, можно копировать md файл из промпта-техписателя, создать новую заметку командой Ctrl+N и вставить в нее файл, получится красивый документ с расставленными наверху данными и тегами, по которым можно выполнить поиск.&lt;/p&gt;
  &lt;p id=&quot;Ru77&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;Td2L&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/eb/55/eb55e5b6-7932-4db9-9d63-69d169ef5d19.png&quot; width=&quot;855.9447287615149&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;C6Ua&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d8/da/d8dab598-b0fd-4fc1-92f7-22490f5474bb.png&quot; width=&quot;854&quot; /&gt;
    &lt;figcaption&gt;Внешний вид заметки&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Nncz&quot;&gt;Можно настроить выноски заметок под себя, заменив соответствующие теги в промпте или в самом документе. За зеленое обрамление решения отвечает выноска [!success] после которой идет нужный заголовок, в данном случае «Решение». Полный список и функционал этих тегов есть на сайте обсидиана &lt;a href=&quot;https://help.obsidian.md/callouts&quot; target=&quot;_blank&quot;&gt;ссылка для ознакомления&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;gNY9&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/d8/acd8791b-6c83-4479-b112-d1cdf65fe001.png&quot; width=&quot;167&quot; /&gt;
    &lt;figcaption&gt;Оформление выноски&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;3oy1&quot;&gt;Так же ключевые определения в заметке можно связывать с другими документами или формировать новые, не выходя из текущей. Для этого необходимо ввести [[]], обсидиан предложит сослаться на существующий документ, если не ссылаться на существующую заметку и написать внутри квадратных скобок название, то создастся новая заметка, связанная с текущей. &lt;/p&gt;
    &lt;p id=&quot;eGyk&quot;&gt;Чтобы дать название ссылки на заметку, необходимо в квадратных скобках выбрать документ на которую идет ссылка и после ее названия поставить символ | и ввести необходимое название. В примере [[GGS|net]] отображается в тексте как net — ссылка на заметку GGS.&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;VCX0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5e/10/5e107c14-4a6f-4633-aec2-f48da4c03d2d.png&quot; width=&quot;375&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;Xpz6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c1/b2/c1b2eeb4-6ca6-4901-847f-e3c3209cc4fc.png&quot; width=&quot;311&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;qMlr&quot; data-align=&quot;center&quot;&gt;Выводы&lt;/h3&gt;
  &lt;p id=&quot;Gcat&quot;&gt;В этой статье я рассмотрел как связать LLM с обучением в ПО и быстро создавать заметки в Obsidian vault. Мне это помогает быстрее и качественнее разбирать функционал современных программ и фиксировать результаты своего обучения в виде персональной базы знаний, к которой можно будет вернуться в случае решения похожей задачи через время и не тратить время на вспоминание алгоритмов решения. Приведенные выше промпты использовались в Gemini 3, Grok 3,4, Qwen 3. &lt;/p&gt;
  &lt;p id=&quot;jbNx&quot;&gt;Очень важно, что пользователь является ключевым звеном в этой системе и без него ничего работать не будет, приведенное выше взаимодействие агентов сделано для улучшенного обучения и формирования личной базы знаний.&lt;/p&gt;
  &lt;p id=&quot;V7wY&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;OS2z&quot;&gt;Полезные ссылки:&lt;/h3&gt;
  &lt;ol id=&quot;uN6i&quot;&gt;
    &lt;li id=&quot;fOXq&quot;&gt;Ссылка на обсидиан: &lt;a href=&quot;https://obsidian.md/&quot; target=&quot;_blank&quot;&gt;https://obsidian.md/&lt;/a&gt; &lt;/li&gt;
    &lt;li id=&quot;bK5H&quot;&gt;Оформление карт: &lt;a href=&quot;https://ggspb.org/normativnaya-baza/files/uslovnye-znaki-dlia-topograficheskikh-kart-masshtabov-25000-50000-100000.pdf&quot; target=&quot;_blank&quot;&gt;https://ggspb.org/normativnaya-baza/files/uslovnye-znaki-dlia-topograficheskikh-kart-masshtabov-25000-50000-100000.pdf&lt;/a&gt;   &lt;/li&gt;
    &lt;li id=&quot;rz72&quot;&gt;Выноски в обсидиане: &lt;a href=&quot;https://help.obsidian.md/callouts&quot; target=&quot;_blank&quot;&gt;https://help.obsidian.md/callouts&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;o7NV&quot;&gt;Промпт для оценки и улучшения промптов: &lt;a href=&quot;https://teletype.in/@foxhunterx/S3z_5cw4n4D&quot; target=&quot;_blank&quot;&gt;https://teletype.in/@foxhunterx/S3z_5cw4n4D&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;0MwI&quot;&gt;&lt;/p&gt;
  &lt;tt-tags id=&quot;NvXT&quot;&gt;
    &lt;tt-tag name=&quot;prompt_engineering&quot;&gt;#prompt_engineering&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;qgis&quot;&gt;#qgis&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;промптинжиниринг&quot;&gt;#промптинжиниринг&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;obsidian&quot;&gt;#obsidian&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;база_знаний&quot;&gt;#база_знаний&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;

</content></entry><entry><id>scheidermark:ExcelAngleToolkit</id><link rel="alternate" type="text/html" href="https://teletype.in/@scheidermark/ExcelAngleToolkit?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=scheidermark"></link><title>Excel-калькулятор углов: как преобразовать градусы, минуты и секунды в десятичные значения и обратно</title><published>2025-03-14T08:25:32.403Z</published><updated>2025-03-14T08:25:32.403Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/f7/79/f779db3d-ee00-4e6b-a61d-c22a21defe02.png"></media:thumbnail><category term="geodeziya-kartografiya-kadastr" label="Геодезия, картография, кадастр"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/8b/32/8b3226a0-51e8-4aa9-95b8-8a9992178500.png&quot;&gt;Работа с углами в формате градусы-минуты-секунды часто вызывает сложности при автоматизации расчетов. В этой статье разберу, как с помощью Excel:   Преобразовать строку вида 46°12′44″ в десятичное число. Выполнить обратное преобразование: из 46,2122222 получить 46°12′44″.Рассмотрю текстовыми функциями (ЛЕВСИМВ, ПСТР, НАЙТИ, ЦЕЛОЕ), на основе рассмотренных функций получим формулы для инженерных, маркшейдерско-геодезических расчетов.</summary><content type="html">
  &lt;p id=&quot;tTNd&quot;&gt;Хочу рассмотреть задачу перевода углов формата (d°m′s″) в десятичные значение и обратно из десятичного значения в формат градусы° минуты′ секунды″ и математические операции над ними при помощи microsoft excel.&lt;/p&gt;
  &lt;p id=&quot;NbYC&quot;&gt;Пусть имеется угол &lt;u&gt;46°12′44″&lt;/u&gt;, необходимо найти синус этого угла или сложить его с углом &lt;u&gt;23°34′23″&lt;/u&gt;. Можно разбить каждый из углов на 3 части - 3 ячейки и , преобразовать их к формату десятичных чисел, помня о том, что в 1 градусе 60 минут, а в 1 минуте 60 секунд. Можно воспользоваться онлайн калькулятором, а можно и написать калькулятор самому, распишу ниже несколько способов:&lt;/p&gt;
  &lt;h2 id=&quot;Bc24&quot; data-align=&quot;center&quot;&gt;Простой способ&lt;/h2&gt;
  &lt;p id=&quot;QYTn&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;NhKm&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d7/86/d786999e-ceda-4a62-a28e-d28bed011bb8.png&quot; width=&quot;336&quot; /&gt;
    &lt;figcaption&gt;Рисунок 1 - исходные данные&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;etAY&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;8qgH&quot;&gt;Формула перевода будет простой и выглядеть следующим образом: &lt;code&gt;=N9+O9/60+P9/3600 (46+12/60+44/3600) = 46,21(2)&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wDAJ&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;NaPi&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d0/3d/d03d2b05-7375-4d3c-b8fe-2678054e8965.png&quot; width=&quot;578.8620689655173&quot; /&gt;
    &lt;figcaption&gt;Рисунок 2 - перевод угла с разбиением на ячейки&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Nofm&quot;&gt;Но можно осуществить переход без разбиения значения угла на 3 ячейки, красиво, но чуть сложнее.&lt;/p&gt;
  &lt;h2 id=&quot;YbbD&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Интересный способ&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;COLZ&quot;&gt;Способ позволяет получить десятичное значение угла, в соседней ячейке без дополнительных разбиений угла, сразу приведу формулу и ниже объясню как она работает: &lt;/p&gt;
  &lt;p id=&quot;6lIa&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;iPqK&quot;&gt;&lt;code&gt;=ЛЕВСИМВ(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)+ПСТР(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)/60+ПСТР(M9;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;quot;&amp;quot;&amp;quot;;M9)-НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-1)/3600&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;f8vn&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/90/8d/908d2867-1d58-4805-9220-d5fea341ccc4.png&quot; width=&quot;397&quot; /&gt;
    &lt;figcaption&gt;Рисунок 3 - лаконичные преобразования&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;cEBX&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;PzD6&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f2/13/f213109b-fc45-485a-895b-072ab7f36b6a.png&quot; width=&quot;800&quot; /&gt;
    &lt;figcaption&gt;Рисунок 4 - разбиение формулы&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;wFzo&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;OmDS&quot; data-align=&quot;center&quot;&gt;&lt;u&gt;Извлечение градусов&lt;/u&gt;&lt;/h2&gt;
  &lt;p id=&quot;LVlw&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;SydT&quot;&gt;Пойду по порядку, сначала разберу часть формулы, извлекающую значение градусов &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kIGW&quot;&gt;&lt;code&gt;=ЛЕВСИМВ(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)  &lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;nnD4&quot;&gt;&lt;code&gt;ЛЕВСИМВ(текст; количество извлекаемых символов)&lt;/code&gt; - эта функция позволяет извлекать необходимое количество символов из строки, начиная слева. Как видно из примера, функция обрабатывает ячейку &lt;/p&gt;
  &lt;p id=&quot;ijBj&quot;&gt;&lt;strong&gt;Первый аргумент&lt;/strong&gt;: это &lt;code&gt;текст &lt;/code&gt;- ячейка &lt;code&gt;М9;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Pbei&quot;&gt;&lt;strong&gt;Второй аргумент:&lt;/strong&gt; это &lt;code&gt;количество извлекаемых символов&lt;/code&gt;, для нахождения воспользовался функцией &lt;code&gt;НАЙТИ(&amp;quot;°&amp;quot;;M9)&lt;/code&gt;. Эта функция находит позицию искомого символа, после выполнения будет выведено число 3, так как знак градусов находится на третьей позиции, чтобы вывести только числовые значения нужно от 3 отнять 1 &lt;code&gt;НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)&lt;/code&gt;, таким образом получим количество чисел до знака градусов. Если в &lt;code&gt;ЛЕВСИМВ&lt;/code&gt; не добавлять второй аргумент - &lt;code&gt;количество извлекаемых символов&lt;/code&gt;, то выведется первое слева значение &lt;code&gt;ЛЕВСИМВ(M9) = 3.&lt;/code&gt; (рисунок 3)&lt;/p&gt;
  &lt;p id=&quot;idip&quot;&gt;&lt;strong&gt;Результат:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;IveB&quot;&gt; &lt;code&gt;=ЛЕВСИМВ(M9;2) &lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;RYsX&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;EFuK&quot;&gt;&lt;u&gt;Извлечение минут и перевод в градусы&lt;/u&gt;&lt;/h3&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;OeKF&quot;&gt; &lt;code&gt;ПСТР(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)/60&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;qCrE&quot;&gt;Функция найти разобрана выше, из нового - это функция &lt;code&gt;ПСТР&lt;/code&gt;. ПСТР возвращает заданное число знаков из строки, начиная с указанной позиции. &lt;code&gt;ПСТР(текст; начальная позиция; количество возвращаемых символов)&lt;/code&gt;. &lt;/p&gt;
  &lt;p id=&quot;6iWb&quot;&gt;&lt;strong&gt;Первый аргумент:&lt;/strong&gt; &lt;code&gt;М9&lt;/code&gt; - это ячейка(&lt;code&gt;текст&lt;/code&gt;) в которой ведется поиск;&lt;/p&gt;
  &lt;p id=&quot;U5ha&quot;&gt;&lt;strong&gt;Второй аргумент:&lt;/strong&gt; &lt;code&gt;начальная позиция - НАЙТИ(&amp;quot;°&amp;quot;;M9)+1&lt;/code&gt;, то есть начальной позицией является позиция после знака «°»,единица прибавляется, так как &lt;code&gt;НАЙТИ(&amp;quot;°&amp;quot;;M9)&lt;/code&gt; = позиция знака градусов «°», а необходимо найти следующую за ней;&lt;/p&gt;
  &lt;p id=&quot;VxRe&quot;&gt;&lt;strong&gt;Третий аргумент: &lt;code&gt;количество возвращаемых символов &lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;6TzA&quot;&gt;&lt;code&gt;&lt;strong&gt; НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-НАЙТИ(&amp;quot;°&amp;quot;;M9)-1&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;LP4F&quot;&gt;Находим позицию знака минут «&amp;#x27;» в примере это 6, &lt;/p&gt;
  &lt;p id=&quot;WLV2&quot;&gt;Находим позицию знака «°» это 3&lt;/p&gt;
  &lt;p id=&quot;mQ3n&quot;&gt;Вычитаем одно из другого и понимаем, что захватываем лишний символ и вместо числа получим число и текст, чтобы этого избежать просто вычитаем единицу.&lt;/p&gt;
  &lt;p id=&quot;ZPU2&quot;&gt;Результат: 6-3-1 =2, два символа между «°» и «&amp;#x27;» будут найдены и использованы в расчетах.&lt;/p&gt;
  &lt;p id=&quot;g9WT&quot;&gt;&lt;strong&gt;Финальный результат работы формулы: &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;b81E&quot;&gt;&lt;code&gt;&lt;strong&gt;ПСТР(M9;4;2) &lt;/strong&gt;&lt;/code&gt;выведется 2 символа ячейки&lt;strong&gt; &lt;code&gt;M9&lt;/code&gt;, &lt;/strong&gt;начиная с четвертого, далее поделится на 60, так как в 1 градусе 60 минут.&lt;/p&gt;
  &lt;p id=&quot;eRXX&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;e19N&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;klGL&quot; data-align=&quot;center&quot;&gt;&lt;u&gt;Извлечение секунд и перевод в градусы&lt;/u&gt;&lt;/h2&gt;
  &lt;p id=&quot;U3p9&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kRg3&quot;&gt;&lt;code&gt;ПСТР(M9;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;quot;&amp;quot;&amp;quot;;M9)-НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-1)/3600&lt;/code&gt; &lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;hscc&quot;&gt;Формула аналогична формуле для извлечения минут.&lt;/p&gt;
  &lt;p id=&quot;pRNf&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;E3if&quot;&gt;&lt;strong&gt;Первый аргумент:&lt;/strong&gt; &lt;code&gt;М9&lt;/code&gt; - это ячейка(&lt;code&gt;текст&lt;/code&gt;) в которой ведется поиск;&lt;/p&gt;
  &lt;p id=&quot;xvY1&quot;&gt;&lt;strong&gt;Второй аргумент:&lt;/strong&gt; &lt;code&gt;начальная позиция - НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)+1&lt;/code&gt;, то есть начальной позицией является позиция после знака «&amp;#x27;»,единица прибавляется, так как &lt;code&gt;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)&lt;/code&gt; = позиция знака секунд «&amp;#x27;», а необходимо найти следующую за ней;&lt;/p&gt;
  &lt;p id=&quot;NYr5&quot;&gt;&lt;strong&gt;Третий аргумент: &lt;code&gt;количество возвращаемых символов &lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;o9wb&quot;&gt;&lt;code&gt;&lt;strong&gt; НАЙТИ(&amp;quot;&amp;quot;&amp;quot;&amp;quot;;M9)-НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-1&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;f8OA&quot;&gt;Находим позицию знака секунд «&lt;code&gt;&lt;strong&gt;&amp;quot;&lt;/strong&gt;&lt;/code&gt;» в примере это 9. &lt;strong&gt;ВАЖНО!&lt;/strong&gt; В Excel кавычки (&lt;code&gt;&amp;quot;&lt;/code&gt;) используются для обозначения текстовых строк. Если нужно указать сам символ кавычки внутри строки, то он должен быть &amp;quot;экранирован&amp;quot; — удвоен.&lt;/p&gt;
  &lt;p id=&quot;xQbR&quot;&gt;Находим позицию знака «&lt;code&gt;&lt;strong&gt;&amp;#x27;&lt;/strong&gt;&lt;/code&gt;» это 6&lt;/p&gt;
  &lt;p id=&quot;EzKM&quot;&gt;Вычитаем одно из другого и понимаем, что захватываем лишний символ и вместо числа получим число и текст, чтобы этого избежать просто вычитаем единицу.&lt;/p&gt;
  &lt;p id=&quot;NIqe&quot;&gt;Результат: 9-6-1 =2, два символа между «&amp;#x27;» и «&amp;quot;» будут найдены и использованы в расчетах.&lt;/p&gt;
  &lt;p id=&quot;6xCv&quot;&gt;&lt;strong&gt;Финальный результат работы формулы: &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;XeN9&quot;&gt;&lt;code&gt;&lt;strong&gt;ПСТР(M9;6;2) &lt;/strong&gt;&lt;/code&gt;выведется 2 символа ячейки&lt;strong&gt; &lt;code&gt;M9&lt;/code&gt;, &lt;/strong&gt;начиная с шестого, далее поделится на 3600, так как в 1 градусе 60 минут, а в 1 минуте 60 секунд.&lt;/p&gt;
  &lt;p id=&quot;UpTi&quot;&gt;После останется все сложить и получим десятичные значения градусов, с которыми можно дальше удобно взаимодействовать.&lt;/p&gt;
  &lt;figure id=&quot;D3m7&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6a/ae/6aaed9f0-3030-44d8-aa2c-3ac1c9b730b7.png&quot; width=&quot;463&quot; /&gt;
    &lt;figcaption&gt;Рисунок 5 - преобразованные значения и вычисления с ними&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;qOwv&quot; data-align=&quot;center&quot;&gt;&lt;/h3&gt;
  &lt;h2 id=&quot;VNZX&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;&lt;u&gt;Обратные преобразования из десятичного значения угла в формат (г°м′с″)&lt;/u&gt;&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;JBIT&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;X6e8&quot;&gt;Для этого потребуется одна функция, из которой будет составлена формула, это функция - &lt;code&gt;ЦЕЛОЕ&lt;/code&gt;, готовая формула:&lt;/p&gt;
  &lt;figure id=&quot;E6NT&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fa/77/fa77d6b8-094e-402d-b2fd-d920ed6c2f80.png&quot; width=&quot;394&quot; /&gt;
    &lt;figcaption&gt;Рисунок 6 - обратные преобразования &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;e3sr&quot;&gt;&lt;code&gt;=ЦЕЛОЕ(M14)&amp;amp;&amp;quot;°&amp;quot;&amp;amp;ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60)&amp;amp;&amp;quot;&amp;#x27;&amp;quot;&amp;amp;((((M14-ЦЕЛОЕ(M14))*60)-ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60))*60)&amp;amp;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;w5Z7&quot;&gt;&lt;code&gt;=ЦЕЛОЕ(угол) &amp;amp; &amp;quot;°&amp;quot; &amp;amp; &lt;br /&gt;ЦЕЛОЕ((угол - ЦЕЛОЕ(угол)) * 60) &amp;amp; &amp;quot;&amp;#x27;&amp;quot; &amp;amp; &lt;br /&gt;ОКРУГЛ(((угол - ЦЕЛОЕ(угол)) * 60 - ЦЕЛОЕ((угол - ЦЕЛОЕ(угол)) * 60)) * 60; 2) &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt; &lt;/p&gt;
    &lt;p id=&quot;SOU5&quot;&gt;Формула облегченная для восприятия&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;hFtU&quot;&gt;&lt;code&gt;ЦЕЛОЕ&lt;/code&gt; Округляет число до ближайшего меньшего целого.&lt;/p&gt;
  &lt;p id=&quot;zFvu&quot;&gt;&lt;u&gt;&lt;strong&gt;Первая часть формулы:&lt;/strong&gt; &lt;/u&gt;&lt;code&gt;ЦЕЛОЕ(M14)&amp;amp;&amp;quot;°&amp;quot;&amp;amp; в&lt;/code&gt;ыделяет целое число градусов из десятичного обозначения угла, &lt;code&gt;&amp;amp;&amp;quot;°&amp;quot;&amp;amp;&lt;/code&gt; прибавляет к числу знак градусов и следующее число. &lt;code&gt;ЦЕЛОЕ(30,3125)&amp;amp;&amp;quot;°&amp;quot;&amp;amp;&lt;/code&gt; = 30° ;&lt;/p&gt;
  &lt;p id=&quot;ZyQD&quot;&gt;&lt;strong&gt;&lt;u&gt;Вторая часть формулы:&lt;/u&gt;&lt;/strong&gt; &lt;code&gt;ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60)&amp;amp;&amp;quot;&amp;#x27;&amp;quot;&amp;amp;&lt;/code&gt; из значения ячейки M14 вычитаю целое значение этой ячейки, разность умножаю на 60, чтобы найти количество минут, далее выделяю целое количество минут = &lt;code&gt;ЦЕЛОЕ((30,3125 - 30) * 60)&amp;amp;&amp;quot;&amp;#x27;&amp;quot;&amp;amp; = ЦЕЛОЕ(0,3125*60)&amp;amp;&amp;quot;&amp;#x27;&amp;quot;&amp;amp;&lt;/code&gt; = 18&amp;#x27; ;&lt;/p&gt;
  &lt;p id=&quot;V7NT&quot;&gt;&lt;strong&gt;&lt;u&gt;Третья часть формулы:&lt;/u&gt;&lt;/strong&gt; &lt;code&gt;((((M14-ЦЕЛОЕ(M14))*60)-ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60))*60)&amp;amp;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt;  получается матрешка - целое в целом в целом ;)      Из значения ячейки M14 вычитаю целое значение этой ячейки (&lt;u&gt;нахожу значение градусов после запятой&lt;/u&gt;), разность умножаю на 60(&lt;u&gt;получаю значение уже в минутах&lt;/u&gt;), потом проделываю эту операцию еще раз (Из значения ячейки M14 вычитаю целое значение этой ячейки, разность умножаю на 60) нахожу целое количество минут, далее разность минуты- минус целые минуты = дробное значение секунд, умножаю дробное значение секунд на 60 и получаю целое значение: ((&lt;code&gt;((30,3125 - 30)) * 60) - ЦЕЛОЕ((30,3125-30)*60))*60)&amp;amp;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt; = 45&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;O3en&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;wHpj&quot;&gt;&lt;u&gt;В статье я использовал обычные кавычки как обозначение минут &amp;#x27; секунд &amp;quot; , но обычно используются спецсимволы минуты ′  секунды ″. &lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;kuUJ&quot;&gt;В формуле &lt;code&gt;=ЛЕВСИМВ(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)+ПСТР(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)/60+ПСТР(M9;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;quot;&amp;quot;&amp;quot;;M9)-НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-1)/3600&lt;/code&gt; при использовании спецсимвола секунд ″ не нужно его удваивать:&lt;/p&gt;
  &lt;p id=&quot;ZJvb&quot;&gt;&lt;code&gt;=ЛЕВСИМВ(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)+ПСТР(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)/60+ПСТР(M9;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)+1;НАЙТИ(&amp;quot;″&amp;quot;;M9)-НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-1)/3600   &lt;/code&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;mObi&quot;&gt;&lt;code&gt;НАЙТИ(&amp;quot;″&amp;quot;;M9)-НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-1)/3600&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ZhK4&quot;&gt;И если появляется ошибка #ЗНАЧ! необходимо проверить совпадение спецсимволов в угле и формуле преобразования, приведение их к одному формату исправляет ошибку и делает вас счастливее! &lt;/p&gt;
  &lt;figure id=&quot;ZZKB&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3c/04/3c04f2c2-fae9-4d2b-b3d7-7f5c2ec16ca1.png&quot; width=&quot;140&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;E1Ux&quot;&gt;(&amp;#x27; &amp;quot; - кавычки ) &lt;/p&gt;
    &lt;p id=&quot;C2zP&quot;&gt;(′ ″ - спецсимволы)&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;H94d&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;S7Oy&quot;&gt;&lt;u&gt;Резюмирую: &lt;/u&gt;в данной статье я рассмотрел способы преобразования углов различными способами, показал как комбинируя функции ms excel можно получить удобный и лаконичный калькулятор пересчета углов, надеюсь было полезно!&lt;/h3&gt;
  &lt;p id=&quot;53jD&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;Qw4F&quot;&gt;
    &lt;li id=&quot;skAO&quot;&gt;Для вышеприведенных преобразований необходимы следующие функции (&lt;code&gt;ЛЕВСИМВ&lt;/code&gt;, &lt;code&gt;НАЙТИ&lt;/code&gt;, &lt;code&gt;ПСТР&lt;/code&gt;, &lt;code&gt;ЦЕЛОЕ&lt;/code&gt;)&lt;/li&gt;
    &lt;li id=&quot;hjZ2&quot;&gt;Для перевода углов формата (d°m′s″) в десятичные значение используется формула: &lt;code&gt;=ЛЕВСИМВ(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)+ПСТР(M9;НАЙТИ(&amp;quot;°&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-НАЙТИ(&amp;quot;°&amp;quot;;M9)-1)/60+ПСТР(M9;НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)+1;НАЙТИ(&amp;quot;&amp;quot;&amp;quot;&amp;quot;;M9)-НАЙТИ(&amp;quot;&amp;#x27;&amp;quot;;M9)-1)/3600&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;s30f&quot;&gt;Для обратного преобразования из десятичного значения угла в формат (г°м′с″) используется формула:                                        &lt;code&gt;=ЦЕЛОЕ(M14)&amp;amp;&amp;quot;°&amp;quot;&amp;amp;ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60)&amp;amp;&amp;quot;&amp;#x27;&amp;quot;&amp;amp;((((M14-ЦЕЛОЕ(M14))*60)-ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60))*60)&amp;amp;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;db2g&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;VLLy&quot;&gt;&lt;strong&gt;Источники:&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;1PTB&quot;&gt;&lt;a href=&quot;https://support.microsoft.com/ru-ru/office/%D0%BB%D0%B5%D0%B2%D1%81%D0%B8%D0%BC%D0%B2-%D0%BB%D0%B5%D0%B2%D0%B1-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-%D0%BB%D0%B5%D0%B2%D1%81%D0%B8%D0%BC%D0%B2-%D0%BB%D0%B5%D0%B2%D0%B1-9203d2d2-7960-479b-84c6-1ea52b99640c&quot; target=&quot;_blank&quot;&gt;ЛЕВСИМВ, ЛЕВБ (функции ЛЕВСИМВ, ЛЕВБ) - Служба поддержки Майкрософт&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;42MZ&quot;&gt;&lt;a href=&quot;https://support.microsoft.com/ru-ru/office/%D0%BD%D0%B0%D0%B9%D1%82%D0%B8-%D0%BD%D0%B0%D0%B9%D1%82%D0%B8%D0%B1-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0%D0%B9%D1%82%D0%B8-%D0%BD%D0%B0%D0%B9%D1%82%D0%B8%D0%B1-c7912941-af2a-4bdf-a553-d0d89b0a0628&quot; target=&quot;_blank&quot;&gt;Функция НАЙТИ - Служба поддержки Майкрософт&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;S1xS&quot;&gt;&lt;a href=&quot;https://support.microsoft.com/ru-ru/office/%D0%BF%D1%81%D1%82%D1%80-%D0%BF%D1%81%D1%82%D1%80%D0%B1-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-%D0%BF%D1%81%D1%82%D1%80-%D0%BF%D1%81%D1%82%D1%80%D0%B1-d5f9e25c-d7d6-472e-b568-4ecb12433028&quot; target=&quot;_blank&quot;&gt;Функция ПСТР - Служба поддержки Майкрософт&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;tGH1&quot;&gt;&lt;a href=&quot;https://support.microsoft.com/ru-ru/office/%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D1%86%D0%B5%D0%BB%D0%BE%D0%B5-a6c4af9e-356d-4369-ab6a-cb1fd9d343ef&quot; target=&quot;_blank&quot;&gt;Функция ЦЕЛОЕ - Служба поддержки Майкрософт&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>scheidermark:windrose</id><link rel="alternate" type="text/html" href="https://teletype.in/@scheidermark/windrose?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=scheidermark"></link><title>Парсинг данных в эксель и построение розы ветров в полуавтоматическом режиме, часть 2.</title><published>2025-01-13T08:34:14.952Z</published><updated>2025-01-13T08:34:14.952Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/7a/23/7a238e1a-fece-4f70-a8d6-6fce2b221889.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/fb/e3/fbe39bcd-8799-4d81-a308-c3ceecd9165f.png&quot;&gt;Это продолжение статьи с описанием построения розы ветров в Ms excel, осталось самое сложное, но самое интересное.</summary><content type="html">
  &lt;p id=&quot;WJP8&quot;&gt;Это продолжение статьи с описанием построения розы ветров в Ms excel, осталось самое сложное, но самое интересное.&lt;/p&gt;
  &lt;h3 id=&quot;jGFi&quot;&gt;5. Построение годовой розы ветров&lt;/h3&gt;
  &lt;h3 id=&quot;Y8y7&quot;&gt;Создание сводной таблицы&lt;/h3&gt;
  &lt;p id=&quot;9yIe&quot;&gt;Сначала необходимо свести все данные по месяцам и направления в одну таблицу, количество ветреных дней и среднюю скорость.&lt;/p&gt;
  &lt;ol id=&quot;znC4&quot;&gt;
    &lt;li id=&quot;8FHg&quot;&gt;Количество ветреных дней определяется простым сложение по каждому листу, пример для северного направления ветра: &lt;code&gt;=СУММ(Январь!H7+Февраль!H7+Март!H7+Апрель!H7+Май!H7+Июнь!H7+Июль!H7+Август!H7+Сентябрь!H7+Октябрь!H7+Ноябрь!H7+Декабрь!H7)&lt;/code&gt;                                          Для ссылки на лист используется формула &lt;code&gt;!имя листа&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;tcIY&quot;&gt;Среднюю скорость ветра определил через медиану по формуле: &lt;code&gt;=ЕСЛИОШИБКА(МЕДИАНА(Январь!I7;Февраль!I7;Март!I7;Апрель!I7;Май!I7;Июнь!I7;Июль!I7;Август!I7;Сентябрь!I7;Октябрь!I7;Ноябрь!I7;Декабрь!I7);0)&lt;/code&gt;, &lt;code&gt;ЕСЛИОШИБКА&lt;/code&gt; добавил для отображения 0 в строке штиль.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;LWYd&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/de/a8/dea8ddb3-07d7-4fd8-8881-736831f7c307.png&quot; width=&quot;744&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;RzGe&quot;&gt;Отображение штиля на графике&lt;/h3&gt;
  &lt;p id=&quot;cjOF&quot;&gt;Если в году были дни со штилем, их необходимо отобразить на графике в виде квадрата с половиной диагонали n, равной количеству штилевых дней (рис.1)&lt;/p&gt;
  &lt;figure id=&quot;MlZd&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e4/39/e439d76b-05ac-46bf-9e28-12d6a824ed3c.png&quot; width=&quot;389&quot; /&gt;
    &lt;figcaption&gt;Рисунок 1 - отображение штилевых дней&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;pFRq&quot;&gt;Для получения штилевого квадрата необходимо подготовить таблицу и в процессе ее заполнения решить небольшую геометрическую задачу (рис. 2).&lt;/p&gt;
  &lt;figure id=&quot;C5Wo&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3f/c3/3fc331e5-23c7-4140-954f-a4e27c3dd169.png&quot; width=&quot;740&quot; /&gt;
    &lt;figcaption&gt;Рисунок 2 - таблица со штилевыми данными&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;BAs9&quot;&gt;Квадрат штиля состоит из 8 треугольников, у каждого треугольника известна 1 координата, это точка 0, необходимо найти оставшиеся координаты треугольников и занести данные в таблицу. Наверху таблицы и слева указаны направления ветра, с-св(север, северо-восток) это значит что треугольник лежит в пределах северного и северо-восточного направлений, а колонка слева указывает отрезок какой длины должен быть проложен в выбранном направлении. &lt;/p&gt;
  &lt;p id=&quot;xDSM&quot;&gt;Разберу на примере 1 колонки: выбранный треугольник лежит в пределах северного и северо-восточного направлений, длина отрезка, откладываемого в северном направлении равна 23 единицам- «n» это полудиагональ квадрата, длина отрезка откладываемого в направлении северо-востока равна n*sin45°&lt;code&gt;=$H$14*SIN(РАДИАНЫ(45))&lt;/code&gt;(рис.3) &lt;/p&gt;
  &lt;p id=&quot;Hnl7&quot;&gt;Для построения была использована &lt;u&gt;лепестковая диаграмма&lt;/u&gt;, но можно использовать &lt;u&gt;точечную (x,y) диаграмму&lt;/u&gt;, в чем то это будет проще, но решение изменится.   &lt;/p&gt;
  &lt;figure id=&quot;j6S8&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e3/a6/e3a6e508-5a23-4416-b647-5b6289b37783.png&quot; width=&quot;354&quot; /&gt;
    &lt;figcaption&gt;Рисунок 3 - длины откладываемых отрезков на розе ветров &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MaWZ&quot;&gt;Таким образом заполняется вся таблица «штиль»&lt;/p&gt;
  &lt;h3 id=&quot;GaIP&quot;&gt;Создание таблицы направлений ветра &lt;/h3&gt;
  &lt;p id=&quot;vuEk&quot;&gt;Рядом создается аналогичная таблица для направлений ветра. Чтобы правильно отобразить направления ветра, необходимо по каждой стороне света от границы квадрата штиля отложить отрезки длиной, равной количеству ветреных дней в выбранном направлении (0l=0n+nl). Каждый луч розы ветров состоит из двух треугольников(рис.4).&lt;/p&gt;
  &lt;figure id=&quot;GJ1J&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f3/1e/f31ec0cd-e3aa-45a8-91e9-f017a1b1b32b.png&quot; width=&quot;354&quot; /&gt;
    &lt;figcaption&gt;Рисунок 4 - схема получения розы ветров&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;BUbv&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;RrkS&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0e/b6/0eb6fd28-06f4-4c15-83a3-b706727dee51.png&quot; width=&quot;1158&quot; /&gt;
    &lt;figcaption&gt;Рисунок 5 - общий вид таблицы &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;93gC&quot;&gt;Заполнение таблицы&lt;/h3&gt;
  &lt;p id=&quot;q7W7&quot;&gt;Для начала предлагаю заполнить ячейки по основным направлениям ветра, так как для их заполнения нужно меньше всего вычислений. Приведу пример на основе северного направления. Точка 1 находится на расстоянии n*sin45°&lt;code&gt;=$H$14*SIN(РАДИАНЫ(45))&lt;/code&gt; аналогично выше вычисляются длины отрезков откладываемых в промежуточных направлениях (св, юв, юз, сз). Точка 2 вычисляется путем сложения количества ветреных дней в северном направлении и количества штилевых дней (рис.6), но эти вычисления справедливы при ситуации когда количество дней со штилем &amp;gt; 0. Если в году каждый день будут дуть ветра в разных направлениях, то точка 2 будет откладываться от нуля на расстояние равное количеству ветреных дней, а не от крайних точек квадрата штиля, а точка 1 будет вычисляться по такой же формуле, но от произвольного числа. Пример формул:&lt;/p&gt;
  &lt;p id=&quot;lLWi&quot;&gt;&lt;code&gt;=ЕСЛИ($H$14&amp;gt;0;$H$14*SIN(РАДИАНЫ(45));L9*SIN(РАДИАНЫ(45)))&lt;/code&gt; вычисление точки 1&lt;/p&gt;
  &lt;p id=&quot;4Kw6&quot;&gt;&lt;code&gt;=ЕСЛИ($H$14&amp;gt;0;$H$6+$H$14;$H$6)&lt;/code&gt; вычисление точки 2 (рис. 7)&lt;/p&gt;
  &lt;p id=&quot;ktQ5&quot;&gt;Цифра в ячейке &lt;code&gt;L9&lt;/code&gt; позволяет регулировать отношение длины луча розы ветров к ширине при количестве штилевых дней = 0. (рис. 8)&lt;/p&gt;
  &lt;p id=&quot;OIBU&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;vYtA&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;FP1T&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c5/84/c58458ad-03d9-4baf-98c2-e630df96d165.png&quot; width=&quot;689&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;CJmm&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9a/b8/9ab85c8d-f559-40c1-97a2-3862ca33efd2.png&quot; width=&quot;535&quot; /&gt;
    &lt;figcaption&gt;Рисунок 6 - луч северного направления ветра&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;sTxd&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b2/b4/b2b4484c-7928-4269-8b00-6b726cd7ca86.png&quot; width=&quot;1112&quot; /&gt;
    &lt;figcaption&gt;Рисунок 7 - вычисления&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;zpNq&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;sm8a&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b3/77/b377cd2b-9cc3-4923-a1bf-86655ea20c80.gif&quot; width=&quot;1320&quot; /&gt;
    &lt;figcaption&gt;Рис. 8 - изменение соотношения длина/ширина&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;OmoK&quot;&gt;Далее заполняются все ячейки по основным направлениям.&lt;/p&gt;
  &lt;h3 id=&quot;b1Yp&quot;&gt;Заполнение ячеек промежуточных направлений&lt;/h3&gt;
  &lt;p id=&quot;44kP&quot;&gt;Точка 1 вычисляется путем сложения количества ветреных дней в северо-восточном направлении и количества штилевых дней, аналогично вышеприведенным вычислениям здесь присутствует условие количества штилевых дней. &lt;/p&gt;
  &lt;p id=&quot;RifV&quot;&gt;&lt;code&gt;=ЕСЛИ(H14&amp;gt;0;($H$7+$L$5);H7)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zxuw&quot;&gt;0,5 ст. кв&lt;code&gt;=$H$14*SIN(РАДИАНЫ(45))&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;RrS4&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cf/53/cf53ced9-9da0-40e1-970c-e7acd0bdd05b.png&quot; width=&quot;826&quot; /&gt;
    &lt;figcaption&gt;Рис. 9 - искомые точки&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;eDkY&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5a/8e/5a8e1213-a339-4d56-b6fa-ab1c5af984e7.png&quot; width=&quot;1275&quot; /&gt;
    &lt;figcaption&gt;Рис. 10 - вычисления&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;LTtE&quot;&gt;Для того чтобы найти точку 2 необходимо построить треугольник ABC и найти точку пересечения стороны AC с диагональю квадрата штиля. Получаем прямоугольный треугольник с биссектрисой BD. Длина биссектрисы BD (x) является искомой величиной. &lt;/p&gt;
  &lt;p id=&quot;XyiU&quot;&gt;Биссектриса делит треугольник ABC на два треугольника BCD и ABD, стороны AB (a) и BC (b) известны (рис.11).&lt;/p&gt;
  &lt;p id=&quot;z9er&quot;&gt;Представлю площадь треугольника ABC как сумму треугольников BCD и ABD&lt;/p&gt;
  &lt;p id=&quot;DuUJ&quot;&gt;S = ½*ab = ½ax*sin45° + ½bx*sin45°&lt;/p&gt;
  &lt;p id=&quot;A09O&quot;&gt;½*ab = ½ax*(√2/2) + ½bx*(√2/2)&lt;/p&gt;
  &lt;p id=&quot;8ruH&quot;&gt;ab = (x*√2*(a+b))/2&lt;/p&gt;
  &lt;p id=&quot;SqWG&quot;&gt;x = 2ab/(√2*(a+b))&lt;/p&gt;
  &lt;p id=&quot;3zIs&quot;&gt;DB (x) = 2ab/(√2*(a+b))&lt;/p&gt;
  &lt;figure id=&quot;05Xq&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0b/aa/0baaf0d2-e09b-4547-947a-dbf485eaeddb.png&quot; width=&quot;826&quot; /&gt;
    &lt;figcaption&gt;Рис. 11 - треугольник ABC&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;W5Xx&quot;&gt;Следовательно формула в экселе с учетом условия будет выглядеть следующим образом: &lt;/p&gt;
  &lt;p id=&quot;XOqI&quot;&gt;&lt;code&gt;=ЕСЛИ(H14&amp;gt;0;(2*$L$5*P22)/(($L$5+P22)*КОРЕНЬ(2));(2*$L$9*P22)/(($L$9+P22)*КОРЕНЬ(2)))&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;bm20&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/da/61/da61b316-9d54-4cae-8498-d503d10115fe.png&quot; width=&quot;1113&quot; /&gt;
    &lt;figcaption&gt;Рис. 12 - вычисления&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gUP6&quot;&gt;Теперь можно окончательно заполнить таблицу «направление ветра» одна колонка - один треугольник на графике. Для правильного и красивого отображения годовой розы ветров важно соблюдать иерархию рядов в данных диаграммы, вышележащий ряд будет перекрывать нижележащий, хорошо подойдет аналогия со слоями в фотошопе. Для изменения иерархии рядов данных необходимо нажать правой кнопкой мыши на диаграмму -&amp;gt; &lt;em&gt;«Выбрать данные»&lt;/em&gt; -&amp;gt; выбрать необходимый ряд и при помощи стрелок передвинуть его на нужный уровень иерархии(рис.13). После настройки иерархии диаграмма будет полностью готова.&lt;/p&gt;
  &lt;figure id=&quot;wUqK&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/18/7e/187e0129-8ce5-4b79-abfa-1fa69b2eb316.png&quot; width=&quot;607&quot; /&gt;
    &lt;figcaption&gt;Рис. 13 - уровни иерархии&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;VF9j&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/81/f7/81f7e2f8-5f80-472c-81df-21b1f8fa0870.png&quot; width=&quot;1751&quot; /&gt;
    &lt;figcaption&gt;Рис. 14 - финальный вид таблицы по направлениям ветра и годовой розы ветров&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;3tEt&quot;&gt;В двух вышепреведенных статьях был рассмотрен алгоритм создания розы ветров по каждому месяцу и годовой розы ветров по данным, полученным с сайта гисметео. Способ полуавтоматический, но даже так позволяет получить быстрые и безошибочные результаты, которые позже можно использовать например для проектирования проветривания карьеров или оценки уровня отрицательного влияния уже существующих и проектируемых промышленных объектов. &lt;/p&gt;

</content></entry><entry><id>scheidermark:e4mG3PQksnE</id><link rel="alternate" type="text/html" href="https://teletype.in/@scheidermark/e4mG3PQksnE?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=scheidermark"></link><title>Парсинг данных в эксель и построение розы ветров в полуавтоматическом режиме, часть 1.</title><published>2024-08-20T12:00:28.076Z</published><updated>2024-08-20T12:01:34.313Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/51/2d/512d61e1-ae07-406c-bd71-823c2450fc2e.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a6/fd/a6fd10ee-4c1f-47dc-bf32-5b00306dcad8.png&quot;&gt;В прошлом семестре мне необходимо было сделать интересную, но в то же время довольно рутинную задачу — начертить розу ветров. Так как вручную фильтровать и выписывать данные, а после объединять это все для построения месячных и годового графиков мне совсем не хотелось, я избрал другой путь и решил эту задачу через прекрасный и всемогущий Microsoft Excel. Ниже будет представлено пошаговое решение, от парсинга данных в эксель до построения годовой розы ветров, приятного чтения!</summary><content type="html">
  &lt;blockquote id=&quot;vP2y&quot;&gt;В прошлом семестре мне необходимо было сделать интересную, но в то же время довольно рутинную задачу — начертить розу ветров. Так как вручную фильтровать и выписывать данные, а после объединять это все для построения месячных и годового графиков мне совсем не хотелось, я избрал другой путь и решил эту задачу через прекрасный и всемогущий Microsoft Excel. Ниже будет представлено пошаговое решение, от парсинга данных в эксель до построения  розы ветров, приятного чтения!&lt;/blockquote&gt;
  &lt;h3 id=&quot;WFE5&quot;&gt;Что такое роза ветров и как ее простроить? По каким исходным данным работать?&lt;/h3&gt;
  &lt;p id=&quot;R8p7&quot;&gt;&lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B7%D0%B0_%D0%B2%D0%B5%D1%82%D1%80%D0%BE%D0%B2&quot; target=&quot;_blank&quot;&gt;Роза ветров&lt;/a&gt; — это векторная диаграмма с помощью которой можно определить направления и скорость ветров в точке наблюдений. Для решения поставленной задачи имеются данные с сайта гисметео, из этих данных необходимо получить:&lt;/p&gt;
  &lt;ul id=&quot;ATNh&quot;&gt;
    &lt;li id=&quot;5ooU&quot;&gt;Определить количество ветреных дней по каждому из направлений (С, СВ, В и тд.) за месяц и за год, вычислить среднюю скорость для каждого из направлений.&lt;/li&gt;
    &lt;li id=&quot;yLZW&quot;&gt;Розы ветров для каждого месяца (рис.1).&lt;/li&gt;
    &lt;li id=&quot;ybYQ&quot;&gt;Годовую розу ветров (рис.2).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;figure id=&quot;rEya&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/e7/2d/e72db40a-64ed-4425-a60a-44750a0922e3.png&quot; width=&quot;708&quot; /&gt;
      &lt;figcaption&gt;Рисунок 1 — Роза ветров за март 2023 года&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;figure id=&quot;yVjl&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/a6/fd/a6fd10ee-4c1f-47dc-bf32-5b00306dcad8.png&quot; width=&quot;1013&quot; /&gt;
      &lt;figcaption&gt;Рисунок 2 - Годовая роза ветров&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;h3 id=&quot;5np3&quot;&gt;С основной задачей определились, но что делать теперь, с чего начать? Для облегчения поиска решений я разбил основную задачу на несколько подзадач:&lt;/h3&gt;
  &lt;ol id=&quot;v251&quot;&gt;
    &lt;li id=&quot;iVRJ&quot;&gt;Парсинг данных в эксель с сайта &lt;a href=&quot;https://www.gismeteo.ru/diary/12863/2023/4/&quot; target=&quot;_blank&quot;&gt;гисметео, дневник погоды&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;GSop&quot;&gt;Подсчет количества ветреных дней и дней со штилем за месяц, и расчет средней скорости ветра для каждого из направлений&lt;/li&gt;
    &lt;li id=&quot;bSq9&quot;&gt;Выбор наиболее подходящего графика и построение месячной розы ветров&lt;/li&gt;
    &lt;li id=&quot;r1aL&quot;&gt;Создание сводной таблицы по количеству ветреных дней, дней со штилем и скорости этих ветров за год&lt;/li&gt;
    &lt;li id=&quot;AKEe&quot;&gt;Построение годовой розы ветров&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h3 id=&quot;zwmx&quot;&gt;1. Парсинг данных в эксель&lt;/h3&gt;
  &lt;p id=&quot;i06B&quot;&gt;Для загрузки данных с сайта в эксель необходимо воспользоваться командой &lt;em&gt;«получить данные из интернета»&lt;/em&gt;. Вкладка &lt;em&gt;«Данные»&lt;/em&gt; -&amp;gt; &lt;em&gt;«получить данные из интернета»&lt;/em&gt;&lt;/p&gt;
  &lt;figure id=&quot;zHfa&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b9/24/b9247009-4e42-43a8-b3d7-4d1b0fdd885c.png&quot; width=&quot;892&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;6G92&quot;&gt;Далее появится окно ввода URL-адреса, в которое необходимо вбить адрес сайта с которого необходимо получить выгрузку данных&lt;/p&gt;
  &lt;figure id=&quot;LX2N&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b5/e2/b5e24d8a-f043-46b2-8fd5-d8c2e1e75a79.png&quot; width=&quot;695&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ACCy&quot;&gt;Далее появится такое окно с готовой таблицей, сортируем данные, удаляя все лишнее. Остаются колонки: число, ветер дневной (вечерний ветер можно не учитывать)&lt;/p&gt;
  &lt;figure id=&quot;9yPD&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/00/6e/006eee41-76c8-48b2-8082-230827ad1f40.png&quot; width=&quot;934&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;nVdo&quot;&gt;Теперь разделяем столбец с направлением ветра на само направление и скорость ветра, для дальнейшего анализа. Используем команду &lt;em&gt;«Текст по столбцам»&lt;/em&gt;. Вкладка &lt;em&gt;«Данные»&lt;/em&gt; -&amp;gt; &lt;em&gt;«текст по столбцам»&lt;/em&gt;. В первом шаге указываем пробел как разделитель, вторым шагом разделяем столбец со скоростями ветра, используем символ-разделитель другой: м&lt;/p&gt;
  &lt;figure id=&quot;sRmb&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/11/2a/112a95c0-3b93-4d18-9c7c-96a8b5e577ee.png&quot; width=&quot;1621&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;QBX1&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3a/c0/3ac00713-806b-4857-9b87-07cd84d8395a.png&quot; width=&quot;506&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;o5b7&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/93/e2/93e248d2-6368-4cad-9c94-cec6951f3ba1.jpeg&quot; width=&quot;466&quot; /&gt;
    &lt;figcaption&gt;                                                     Конечныы результатом разделения является 3 столбец&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SumX&quot;&gt;С парсингом данных и их подготовкой закончили, теперь можно переходить к подсчетам.&lt;/p&gt;
  &lt;h3 id=&quot;v46A&quot;&gt;2. Подсчет количества ветреных дней и дней со штилем за месяц, и расчет средней скорости ветра для каждого из направлений&lt;/h3&gt;
  &lt;p id=&quot;1uj7&quot;&gt;Для начала формируем таблицу из трех столбцов:&lt;/p&gt;
  &lt;ul id=&quot;HvqA&quot;&gt;
    &lt;li id=&quot;bze7&quot;&gt;Направление ветра, указываем здесь все направления от северного до северо-западного и штиль&lt;/li&gt;
    &lt;li id=&quot;C9UQ&quot;&gt;Количество ветреных дней&lt;/li&gt;
    &lt;li id=&quot;nlJx&quot;&gt;Средняя скорость&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;z1xZ&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a0/da/a0dafc7b-63d6-42bd-afad-5a62f55135a5.png&quot; width=&quot;591&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Jiql&quot;&gt;Количество ветреных дней из столбца &amp;quot;Колво&amp;quot; подсчитывается по следующей формуле:&lt;/p&gt;
  &lt;pre id=&quot;nXdv&quot;&gt;=СЧЁТЕСЛИ($C$5:$C$35;G6)&lt;/pre&gt;
  &lt;p id=&quot;j66G&quot;&gt;Команда &lt;code&gt;=СЧЁТЕСЛИ()&lt;/code&gt; подсчитывает количество ячеек в диапазоне удовлетворяющих условию. В данном примере диапазоном является &lt;code&gt;$C$5:$C$35&lt;/code&gt;, а условием ячейка &lt;code&gt;G6&lt;/code&gt;. То есть в диапазоне направлений ветров ищется совпадение по северному направлению найденное количество совпадений выводится. После эта формула растягивается на все нижележащие ячейки от &lt;code&gt;H6&lt;/code&gt; до &lt;code&gt;H14&lt;/code&gt;.&lt;/p&gt;
  &lt;figure id=&quot;I0tm&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f3/0e/f30e0932-8289-4aa2-abfd-56abf661d69a.png&quot; width=&quot;643&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;jOCE&quot;&gt;Следующим шагом считается средняя скорость:&lt;/p&gt;
  &lt;pre id=&quot;xcuW&quot;&gt;=(СУММЕСЛИ($C$5:$C$35;G6;$D$5:$D$35))/ЕСЛИ(H6&amp;gt;0;H6;1)&lt;/pre&gt;
  &lt;p id=&quot;esHu&quot;&gt;Команда &lt;code&gt;=СУММЕСЛИ($C$5:$C$35;G6;$D$5:$D$35)&lt;/code&gt; ведет поиски в столбце «Ветер» ячейки: &lt;code&gt;C5:C35&lt;/code&gt;, по ячейке &lt;code&gt;G6&lt;/code&gt; (поочередно сравнивая значение в ячейке &lt;code&gt;G6&lt;/code&gt; с ячейками из диапазона &lt;code&gt;C5:C35&lt;/code&gt;), если значения из ячеек &lt;code&gt;C5:C35&lt;/code&gt; совпадают со значением ячейки &lt;code&gt;G6&lt;/code&gt; то значения в столбце «Ск-ть» &lt;code&gt;D5:D35&lt;/code&gt; , находящиеся напротив ячеек удовлетворяющих условию суммируются. В рассматриваемом примере в ячейке &lt;code&gt;G6 &lt;/code&gt;находится значение «&lt;code&gt;С&lt;/code&gt;» (северное направление ветра), если сравнить это значение со значением первой ячейки диапазона &lt;code&gt;C5&lt;/code&gt; «ЮВ», то формула выдаст «ложь» и не будет суммировать эту ячейку, если далее продолжить сравнение то все ячейки до &lt;code&gt;C12 &lt;/code&gt;будут выдавать «ложь», ячейка &lt;code&gt;C12&lt;/code&gt; равна &lt;code&gt;G12&lt;/code&gt;, следовательно находящаяся правее ячейка &lt;code&gt;D12&lt;/code&gt; будет внесена в сумму, все дальнейшие ячейки не будут удовлетворять заданному условию и не будут внесены в сумму.&lt;/p&gt;
  &lt;p id=&quot;X4KC&quot;&gt;&lt;code&gt;ЕСЛИ(H6&amp;gt;0;H6;1)&lt;/code&gt; вторая часть формулы выбирает ненулевые значения количества ветреных дней, а нулевые значения заменяет единицей, чтобы не вызвать ошибок и произвести корректный расчет. То есть если значение исследуемой ячейки больше нуля &lt;code&gt;ЕСЛИ(H6&amp;gt;0)&lt;/code&gt;, то в числителе остается исследуемое число &lt;code&gt;ЕСЛИ(H6&amp;gt;0;H6)&lt;/code&gt;,иначе оно заменяется единицей &lt;code&gt;ЕСЛИ(H6&amp;gt;0;H6;1)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;k4LB&quot;&gt;Ниже приведена схема подсчета средней скорости для северного и западного направлений.&lt;/p&gt;
  &lt;figure id=&quot;gEix&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8b/57/8b575999-7093-4619-af11-e6ea0297dd04.png&quot; width=&quot;732&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;8zXU&quot;&gt;*Так же можно посчитать среднюю скорость не через среднее арифметическое, а используя медиану, такой метод подсчета позволит отсечь аномально высокие/низкие значения и получить более точный результат.&lt;/p&gt;
  &lt;p id=&quot;0CJp&quot;&gt;Очень полезная статья: &lt;a href=&quot;http://mathprofi.ru/moda_mediana_generalnaya_i_vyborochnaya_srednyaya.html#mo&quot; target=&quot;_blank&quot;&gt;http://mathprofi.ru/moda_mediana_generalnaya_i_vyborochnaya_srednyaya.html#mo&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;5Hds&quot;&gt;Формула по которой можно посчитать среднюю скорость через&lt;/p&gt;
  &lt;p id=&quot;0dvJ&quot;&gt;медиану:&lt;code&gt;=ЕСЛИОШИБКА(МЕДИАНА(ЕСЛИ($C$5:$C$35=G6;$D$5:$D$35));0)&lt;/code&gt;&lt;/p&gt;
  &lt;h3 id=&quot;nLMo&quot;&gt;3. Выбор наиболее подходящего графика и построение месячной розы ветров&lt;/h3&gt;
  &lt;p id=&quot;4OgY&quot;&gt;Наиболее подходящей из-за простоты оформления мне показалась лепестковая диаграмма. Диаграммы находятся во вкладке &lt;em&gt;«Вставка»&lt;/em&gt; -&amp;gt; &lt;em&gt;«Рекомендуемые диаграммы»&lt;/em&gt; -&amp;gt; &lt;em&gt;«Все диаграммы»&lt;/em&gt; -&amp;gt; &lt;em&gt;«Лепестковая»&lt;/em&gt;&lt;/p&gt;
  &lt;figure id=&quot;YsOW&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/70/87/70875904-4c9c-4506-83ee-dfebf4f28c6b.png&quot; width=&quot;1019&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;uz0I&quot;&gt;Далее нужно нажать левой кнопкой мыши на появившуюся пустую диаграмму и кликнуть &lt;em&gt;«Выбрать данные»&lt;/em&gt;&lt;/p&gt;
  &lt;figure id=&quot;v8Hc&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/84/fc/84fc8517-9b42-4bc7-ae7f-b2fc24b2e382.png&quot; width=&quot;257&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;FzW0&quot;&gt;В появившемся окне &lt;em&gt;«Выбор источника данных»&lt;/em&gt; нажать на &lt;em&gt;«Добавить»&lt;/em&gt; под надписью&lt;em&gt; «Элементы легенды»&lt;/em&gt;(ряды), написать любое имя ряда и в колонке &lt;em&gt;«значения»&lt;/em&gt; выбрать столбец количества ветреных дней, все значения кроме количества дней со штилем (Рис.3.2.) Далее нажать ОК и в правом столбце &lt;em&gt;«Подписи горизонтальной оси»&lt;/em&gt;(категории) изменить на значения названий направлений(Рис.3.3)&lt;/p&gt;
  &lt;figure id=&quot;08jc&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/83/d5/83d5cf56-3620-4a8d-86ec-71376f644953.png&quot; width=&quot;613&quot; /&gt;
    &lt;figcaption&gt;Рис.3.1&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;7wqh&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/90/bc90719d-a37b-4184-9cee-85450033ca12.png&quot; width=&quot;665&quot; /&gt;
    &lt;figcaption&gt;Рис.3.2&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;y09j&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/aa/ca/aaca16fc-0be5-4dce-b69e-4d9e673ab9ad.png&quot; width=&quot;681&quot; /&gt;
    &lt;figcaption&gt;Рис.3.3&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Vcw6&quot;&gt;Диаграмма заполнена и визуализирует все данные осталось только настроить внешний вид на свой вкус и повторить вышеприведенные операции для всех оставшихся месяцев&lt;/p&gt;
  &lt;figure id=&quot;TG9c&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/85/d7/85d7abb4-d8d2-4159-a4ae-18caa805905d.png&quot; width=&quot;939&quot; /&gt;
  &lt;/figure&gt;

</content></entry></feed>