TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #241 · 5 мај

Можно ли в Python создавать бинарные файлы? Конечно можно. Для этого в Python есть следующие инструменты: ▫️ тип данных bytes и bytearray ▫️ открытие файла в режиме wb (write binary) или rb (read binary) ▫️ модуль struct Про модуль struct поговорим в первую очередь. Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных. В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла. Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла. Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид. Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки). Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение. При этом следует помнить что мы говорим о типах языка С а не Python. Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще. Вот какие токены формата у нас есть. Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы. В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты. Запакуем в байты простое число, токен "i". >>> import struct >>> struct.pack('=i', 10) b'\n\x00\x00\x00' Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов. >>> struct.pack('=fff', 1.0, 2.5, 4.1) b'\x00\x00\x80?\x00\x00 @33\x83@' Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же. >>> struct.pack('=3f', 1.0, 2.5, 4.1) b'\x00\x00\x80?\x00\x00 @33\x83@' Теперь запакуем разные типы >>> data = struct.pack('=fiQ', 1.0, 4, 100500) я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт) b'\x00\x00\x80?\x04\x00\x00...' Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа. >>> struct.unpack('=fiQ', data) (1.0, 4, 100500) Как видите, ничего страшного! #lib#basic

Hashtags

Резултати

Пронајдени 5 слични објави

Пребарај: #landuse

当前筛选 #landuse清除筛选
О городах и данных

@datainthecity · Post #178 · 27.11.2023 г., 12:55

#momepy#landuse Сейчас по работе решаю задачу выделения в городе разных функциональных зон, а также разделения города на кварталы в зависимости от их уровня экономического развития. Это довольно популярная проблема, когда сервис нацелен на определенную аудиторию, а в регионе структура населения неоднородна. Я решаю задачу для столицы Нигерии - Лагоса, где по данным World Bank наблюдается чуть ли не самый большой в мире индекс неравенства: трущобы, где люди до сих пор выбрасывают отходы в реку, перемежаются с районами вилл самых богатых людей Африки. Соответственно, мне нужно как минимум научиться отличать первые от вторых, а еще желателно выделять "средний" класс, а также зоны коммерческого и индустриального использования Из данных: - building footprints (от microsoft и со спутников) - дорожный граф из OpenStreetMap - POIs ( у нас есть скрепер с Google Maps, но можно и из OSM) - население из HDX по квадратам на 1км - Скоры на основе переписи населении по уровню покрытия связью и экономическому уровню, рассчитанные на электоральные районы Как видите никаких мобильных данных или данных о тратах по картам, которые бы хорошо помогли ответить на вопрос об экономической активности населения, нет. Поэтому решать задачу придется полагаясь на гипотезу о различии морфологии бедных, средних и богатых районов. Для этого я использую python библиотеку momepy, где автор Martin Fleishman собрал все возможные метрики, связанные с описанием расположения зданий в районе. Вот тут можно найти ноутбук с его воркшопа. В комменты поста кинули еще вот такой пример работы с библиотекой. Все что нужно для работы с библиотекой - это building footprints, код на загрузку улиц за вас уже написан😊 Прикладываю вам для вдохновения красивую картинку, где дома раскрашены по показателю intensity. Дальше возникает вопрос, что делать с получившимися метриками? Как определить порог, по которому можно отличить районы. С одной стороны для такого города как Лагос вопрос звучит несложно: в трущобах застройка явно плотнее, чем в богатых районах, а улицы там явно рисовал не urban planner. С другой стороны, а в моем случае требуется точность близкая к единице - ошибиться и предложить клиенту развивать сервис в районах, где нет электричества будет стоить компании как минимум репутации. Кроме того, вопрос land use это не решает Найти правильный ответ на вопрос мне еще предстоит, а пока делюсь текущими вариантами и источниками В качестве вдохновения для экспериментов взяла 3 статьи: 1. Статья про выделение трущоб для Найроби (как раз на основе momepy). Тут авторы предлагают обойтись без таргета и сделать иерархическую кластеризацию на основе метрик зданий. Идея хорошая, вопрос в невозможности оценить точность и нет ответа про land use 2. Свежая статья про выделение функциональных зон в 2х районах Сингапура. Авторы решают задачу на основе плотности POI из разных категорий (KDE) и кластеризации. В моем случае частично решает проблему 3. Статья про выделение трущоб в Джакарте на основе Remote Sensing и анализа Street Views. Для меня эта статья интересна возможностью переиспользовать отвалидированные модели, выученные на одной стране, для другой. Риск здесь - различия в морфологии трущоб. Как будут результаты обязательно поделюсь получившимся решением, а пока держите красивую картинку Лагоса на основе метрики intensity из momepy

Amazing Geography 🌍

@amazingeo · Post #409 · 23.10.2025 г., 20:31

🌍 Palm oil plantations now cover over 19 million hectares worldwide, mainly in Indonesia and Malaysia. This rapid expansion has made Southeast Asia the top global supplier of edible vegetable oil. ✨ #agriculture⚡#crops⚡#landuse⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

Amazing Geography 🌍

@amazingeo · Post #249 · 16.09.2025 г., 20:12

🌍 The world's largest city by land area is New York City’s metropolitan region, covering over 8,700 square kilometers—larger than some countries, with urban expansion stretching far beyond city limits. ✨ #urbanization⚡#megacity⚡#landuse⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography🌍 ​

Amazing Geography 🌍

@amazingeo · Post #346 · 08.10.2025 г., 12:31

🌍 In the Sahel region of Africa, people grow crops and raise animals on land where wild grasses once thrived. Human activity has pushed the desert edge south by up to 100 kilometers in places. ✨ #desertification⚡#Africa⚡#landuse⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

URA Singapore

@URASingapore · Post #728 · 29.02.2024 г., 10:15

Wondering what we’ve been up to lately? Take a peek into the future, and find out more about some of our upcoming projects 🔮 These are part of the upcoming Draft Master Plan 2025, where we’ll plan our future land use for the following 10 to 15 years together with you. From project details to ways you can contribute, stay in the loop for all things #DMP2025 here: 👉go.gov.sg/URADraftMasterPlan #SpaceForOurDreams#DiscoverSingapore#sustainability#landuse#climatechange#housing