Можно ли в 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
In a big development for India, #ISRO has mapped every village in the country from space and the satellite data will go a long way to support gram panchayats in decentralised planning, monitoring of assets, and improving grassroots governance.
https://share.google/CdDRn2OKgXKfMtYQW
You can soon be an astronaut: #ISRO to open astronaut cadre to civilians
The proposed pool will likely comprise 10 astronauts, six mission pilots drawn from military aviation backgrounds and four civilian specialists from science, technology, engineering, and mathematics (STEM) fields.
https://t.co/XcEY1tP7JT
"भारत में पहली बार ISRO ने प्रकाश के कणों (फोटोंस) पर संदेश भेजने में सफलता हासिल की"
पहली बार देश में भारतीय अंतरिक्ष अनुसंधान संगठन ने ऐसी तकनीक का प्रदर्शन किया है, जिससे भेजे गए संदेश को किसी भी कीमत पर हैक करना असंभव होगा. ISRO ने 300 मीटर की दूरी तक Free Space Quantum Communication का सफल परीक्षण किया है. यानी इसरो ने प्रकाश कण Photons के जरिए संदेश को एक जगह से दूसरी जगह भेजने की महारत हासिल कर ली है.
Free Space Quantum Communication की तकनीक को Quantum Key Distribution भी कहते हैं. इसमें किसी संदेश, चित्र या वीडियो को प्रकाश कण फोटोंस में डाला जाता है. इसे एक जगह से दूसरी जगह विशेष प्रकार के ट्रांसमीटर से भेजा जाता है. इसे खास तरीके का रिसीवर ही प्राप्त कर सकता है.
ISRO ने स्वदेशी तकनीक से विकसित NAVIC रिसीवर को अपग्रेड करके इस लायक बनाया कि वह Free Space Quantum Communication को प्रदर्शित कर सके. अगर ISRO इस तकनीक को ताकतवर स्तर पर विकसित करने में सफल हो जाता है तो अंतरिक्ष से भेजे गए संदेशों और अपने सैटेलाइट के संदेशों को बेहद कम समय में अत्यधिक सुरक्षित तरीके से हासिल किया जा सकेगा. इन संदेशों को कोई भी देश या हैकर हैक नहीं कर पाएगा.
ISRO ने फ्री-स्पेस क्वांटम कम्यूनिकेशन के जरिए वीडियो कॉन्फ्रेंसिंग की है. यानी सामान्य एनक्रिप्टेड संदेशों की तुलना में इस तकनीक से भेजे गए संदेश ज्यादा सुरक्षित होते हैं. क्योंकि ये भविष्य की टेक्नोलॉजी है. इसे क्वांटम क्रिप्टोग्राफी (Quantum Cryptography) कहते हैं.
Quantum Cryptography का मतलब ये हो गया कि आपके संदेश को प्रकाश कण Photons में बदलकर उन्हें इस तरह से सुरक्षित करना कि कोई इसे ब्रेक या हैक न कर पाए. क्वांटम क्रिप्टोग्राफी सामान्य इंटरनेट के एनक्रिप्टेड संदेशों से लाखों गुना ज्यादा सुरक्षित होता है.
अभी तक दुनिया में ऐसी तकनीक नहीं बनी है जो Quantum Cryptography द्वारा भेजे गए संदेश को हैक कर सके या उसे तोड़ सके. यानी आपका संदेश पूरी तरह से सुरक्षित है. इसका प्रदर्शन ISRO के अहमदाबाद स्थित स्पेस एप्लीकेशन सेंटर (SAC) में किया गया है. सेंटर के कैंपस के अंदर इमारतों के बीच रात में इस तकनीक का प्रदर्शन हुआ. ताकि इस संचार प्रक्रिया में दिन की धूप और प्रदूषण या अन्य तरह की बाधाएं न आएं.
इस प्रदर्शन की सफलता यह बताती है कि भविष्य में ISRO सैटेलाइट बेस्ड क्वांटम कम्यूनिकेशन (Satellite Based Quantum Communication - SBQC) का उपयोग करेगा. अब ISRO की तैयारी है कि वह अपने दो ग्राउंड स्टेशन के बीच इस तकनीक का सफल उपयोग करके दुनिया को दिखाए कि भारतीय साइंटिस्ट्स दुनिया में किसी से कम नहीं हैं.
जिस तरह ISRO सैटेलाइट बेस्ड क्वांटम कम्यूनिकेशन (Satellite Based Quantum Communication - SBQC) भेजने की तैयारी में जुटा है. ठीक उसी तरह चीन भी 2030 तक ऐसे ही सैटेलाइट्स छोड़ने की तैयारी में जुटा हुआ है. चीन अपना क्वांटम शेयरिंग नेटवर्क बना रहा है. ताकि इसका उपयोग देश की रक्षा और सुरक्षा में किया जा सके.
फ्री-स्पेस क्वांटम कम्यूनिकेशन (Free Space Quantum Communication) अल्ट्रा-हाई सिक्योरिटी पर आधारित तकनीक है. इसका डुप्लीकेट अथवा इसमें दी गई सूचनाओं को अलग नहीं किया जा सकता. यदि कोई सूचना डिकोड करने की कोशिश करता है तो यह इनक्रिप्शन बदल देगा जिससे सूचना पाने वाले को प्रणाली से की गई छेड़छाड़ का पता चल जाएगा. अमेरिकी वैज्ञानिक डेविड वाइनलैंड एवं फ्रांस के सर्ज हरोच को क्वांटम पार्टिकल्स की खोज हेतु वर्ष 2012 में नोबल पुरस्कार से सम्मानित किया गया था.
#ISRO👍 Join @OnlineEducation10
#ISRO ne kiya kamaal, ab hai tumhaari bari!
Chandrayaan ho ya koi aur Mission
Conquering everything is possible with a proper VISION!! 🚀🇮🇳
Make your teams on #Vision11 & start playing now! 📲
https://www.threads.net/t/CuuH1VnPhiI/?igshid=NTc4MTIwNjQ2YQ==
India soars to new heights! 🚀🌕
Chandrayaan 3 takes flight, marking another remarkable milestone in our space exploration journey. A giant leap towards unravelling the mysteries of the moon and pushing the boundaries of scientific discovery.
#ISRO#Chandrayaan3#MoonMission
Chandrayaan 3's expedition unveiled
Tracing the remarkable journey from launch to lunar exploration, a story that propels us into the cosmos ✨🚀🌑
#Chandrayaan3#ISRO
#BestWishesChandrayaan3
Fifteen days after the launch of the #NISAR satellite, the antenna reflector has finally been deployed.
Congratulations to 🇺🇲#NASA and 🇮🇳#ISRO ! 🎉
After this successful deployment, we can look forward to receiving incredible, high-resolution images of Earth in the coming weeks. These images will support a wide range of scientific studies , including climate monitoring, natural disaster assessment, and environmental research.
🚀ИКИ РАН за год создаст прибор для индийской венерианской миссии
Российский приборViral для измерения газового состава атмосферы Венеры планируется запустить ко второй от Солнца планете на индийском аппарате Venus Orbiter Mission (также используется название "Шукраян"). Образец этого прибора необходимо изготовить за год, сообщил ТАСС заведующий отделом физики планет Института космических исследований (ИКИ) РАН, член-корреспондент РАН Олег Кораблев.
"На то, чтобы сделать Viral, у нас остается год, ведь коллеги из ISRO (Индийская организация космических исследований - прим. ТАСС) хотят в марте 2027 года уже получить летный образец, а его еще необходимо испытать. У нас хорошие заделы, по ExoMars и другие, и я достаточно высоко оцениваю наши шансы успеть к этому дедлайну", - сказал Кораблев.
🔬 По его словам, Viral будет измерять газовый состав и структуру верхних слоев венерианской атмосферы, над облаками. "Похожий прибор был на европейском аппарате "Венера-экспресс" - его делали бельгийские коллеги, но корни уходили в наши наработки. Запустили, он собрал большой массив данных, но есть что улучшить, поэтому мы планируем это исследование повторить на новом уровне", - добавил ученый.
ℹ️Индия в 2028 году планирует запустить к Венере автоматическую станцию Venus Orbiter Mission - она станет первым индийским аппаратом, отправившимся к этой планете. В число научных задач миссии входит радарное исследование поверхности, изучение состава атмосферы планеты и потенциальной вулканической или сейсмической активности. Космический аппарат будет оснащен множеством современных приборов, которые помогут исследовать Венеру, в том числе российским прибором Viral.
➡️ Источник: ТАСС
#Новости#Космос#Венера#Россия#Индия#ИКИ#ISRO#Наука#Технологии#Бизнес#Сотрудничество
Don't miss the 3D engraving of India's first satellite, the Aryabhata, at the back of the Apogee watches.
#WatchReview by Murali K Menon at
https://www.moneycontrol.com/news/luxury-lifestyle/bangalore-watch-companys-apogee-a-watch-inspired-by-isro-7368871.html
#Apogee#IndianSpaceResearchOrganisation#Isrowatch#luxurywatches#ISRO
@onlineeducation10