У меня есть код Python, который я использую для угадывания точек в воздушном пространстве. Это работает очень хорошо. Я использую текстовый файл, в котором точки указаны с их координатами. В настоящее время точки идентифицируются по таким координатам:
BORAS 770 624.
Мне нужно сделать то же самое, но с использованием другого txt. файл, в котором точки имеют географическую привязку, например:
BORAS 441327N 0100414E.
import tkinter as tk
from tkinter import messagebox, Canvas
import os
# Funzione per leggere le parole e le coordinate dal file coordinate_punti.txt
def load_words_from_file(filename):
if os.path.exists(filename):
with open(filename, 'r') as file:
lines = file.readlines()
words = []
for line in lines:
parts = line.split()
if len(parts) >= 3: # Verifica che ci siano almeno 3 elementi
word = parts[0].strip().lower() # La parola è il primo elemento
try:
# Recupera le coordinate e converte in interi
coordinates = (int(parts[1]), int(parts[2]))
words.append((word, coordinates)) # Aggiungi parola e coordinate come tuple
except ValueError:
messagebox.showwarning("Errore", f"Coordinate non valide per la parola '{word}'")
else:
messagebox.showwarning("Errore", "Formato non valido nella riga: " + line)
return words
else:
messagebox.showerror("Errore", f"Il file {filename} non esiste!")
return []
# Funzione per normalizzare le coordinate
def normalize_coordinates(words_data, canvas_width=600, canvas_height=450):
# Estrai le coordinate
x_values = [coord[1] for _, coord in words_data]
y_values = [coord[0] for _, coord in words_data]
# Trova i valori massimi e minimi
x_min, x_max = min(x_values), max(x_values)
y_min, y_max = min(y_values), max(y_values)
# Normalizza le coordinate
normalized_words = []
for word, (x, y) in words_data:
# Normalizzazione
x_normalized = ((x - x_min) / (x_max - x_min) * (canvas_width - 40) + 20) - 50 # Centrare verso sinistra
y_normalized = (y - y_min) / (y_max - y_min) * (canvas_height - 40) + 20
normalized_words.append((word, (int(x_normalized), int(y_normalized))))
return normalized_words
# Percorso multipiattaforma del file coordinate_punti.txt
file_path = os.path.join(os.path.dirname(__file__), 'coordinate_punti.txt')
# Carica le parole e le coordinate dal file
words_data = load_words_from_file(file_path)
# Normalizza le coordinate mantenendo le proporzioni
normalized_words_data = normalize_coordinates(words_data)
class WordGameApp:
def __init__(self, root):
self.root = root
self.root.title("Points")
if not normalized_words_data: # Se la lista di parole è vuota
self.root.quit()
return
self.initialize_game()
# Frame principale
self.frame = tk.Frame(root)
self.frame.pack(pady=10)
# Label per le istruzioni
self.label = tk.Label(self.frame, text="Inserisci i punti che ricordi:")
self.label.pack(pady=10)
# Textbox per l'inserimento della parola
self.word_entry = tk.Entry(self.frame)
self.word_entry.pack(pady=10)
self.word_entry.bind('', self.check_word) # Tasto Enter per invio parola
# Label per il contatore di parole
self.counter_label = tk.Label(self.frame, text=f"Punti restanti: {self.remaining_words}")
self.counter_label.pack(pady=10)
# Canvas per disegnare forme
self.canvas = Canvas(self.frame, width=600, height=400)
self.canvas.pack(pady=10)
# Pulsante per pulire il canvas e resettare la sessione
self.clear_button = tk.Button(self.frame, text="Pulisci e Reset", command=self.reset_game)
self.clear_button.pack(pady=10)
# Pulsante per mostrare/nascondere tutte le parole
self.toggle_button = tk.Button(self.frame, text="Mostra tutti i punti", command=self.toggle_words)
self.toggle_button.pack(pady=10)
# Frame separato per i pulsanti orizzontali
self.button_frame = tk.Frame(self.frame)
self.button_frame.pack(pady=10) # Aggiungi il frame
В приведенном выше коде координаты также нормализуются, так что все точки в списке могут отображаться на холсте даже тогда, когда я использую сценарий на своем телефоне.
У меня есть код Python, который я использую для угадывания точек в воздушном пространстве. Это работает очень хорошо. Я использую текстовый файл, в котором точки указаны с их координатами. В настоящее время точки идентифицируются по таким координатам: BORAS 770 624. Мне нужно сделать то же самое, но с использованием другого txt. файл, в котором точки имеют географическую привязку, например: BORAS 441327N 0100414E. [code]import tkinter as tk from tkinter import messagebox, Canvas import os
# Funzione per leggere le parole e le coordinate dal file coordinate_punti.txt def load_words_from_file(filename): if os.path.exists(filename): with open(filename, 'r') as file: lines = file.readlines() words = [] for line in lines: parts = line.split() if len(parts) >= 3: # Verifica che ci siano almeno 3 elementi word = parts[0].strip().lower() # La parola è il primo elemento try: # Recupera le coordinate e converte in interi coordinates = (int(parts[1]), int(parts[2])) words.append((word, coordinates)) # Aggiungi parola e coordinate come tuple except ValueError: messagebox.showwarning("Errore", f"Coordinate non valide per la parola '{word}'") else: messagebox.showwarning("Errore", "Formato non valido nella riga: " + line) return words else: messagebox.showerror("Errore", f"Il file {filename} non esiste!") return []
# Funzione per normalizzare le coordinate def normalize_coordinates(words_data, canvas_width=600, canvas_height=450): # Estrai le coordinate x_values = [coord[1] for _, coord in words_data] y_values = [coord[0] for _, coord in words_data]
# Trova i valori massimi e minimi x_min, x_max = min(x_values), max(x_values) y_min, y_max = min(y_values), max(y_values)
# Percorso multipiattaforma del file coordinate_punti.txt file_path = os.path.join(os.path.dirname(__file__), 'coordinate_punti.txt')
# Carica le parole e le coordinate dal file words_data = load_words_from_file(file_path)
# Normalizza le coordinate mantenendo le proporzioni normalized_words_data = normalize_coordinates(words_data)
class WordGameApp: def __init__(self, root): self.root = root self.root.title("Points")
if not normalized_words_data: # Se la lista di parole è vuota self.root.quit() return
self.initialize_game()
# Frame principale self.frame = tk.Frame(root) self.frame.pack(pady=10)
# Label per le istruzioni self.label = tk.Label(self.frame, text="Inserisci i punti che ricordi:") self.label.pack(pady=10)
# Textbox per l'inserimento della parola self.word_entry = tk.Entry(self.frame) self.word_entry.pack(pady=10) self.word_entry.bind('', self.check_word) # Tasto Enter per invio parola
# Label per il contatore di parole self.counter_label = tk.Label(self.frame, text=f"Punti restanti: {self.remaining_words}") self.counter_label.pack(pady=10)
# Canvas per disegnare forme self.canvas = Canvas(self.frame, width=600, height=400) self.canvas.pack(pady=10)
# Pulsante per pulire il canvas e resettare la sessione self.clear_button = tk.Button(self.frame, text="Pulisci e Reset", command=self.reset_game) self.clear_button.pack(pady=10)
# Pulsante per mostrare/nascondere tutte le parole self.toggle_button = tk.Button(self.frame, text="Mostra tutti i punti", command=self.toggle_words) self.toggle_button.pack(pady=10)
# Frame separato per i pulsanti orizzontali self.button_frame = tk.Frame(self.frame) self.button_frame.pack(pady=10) # Aggiungi il frame [/code] В приведенном выше коде координаты также нормализуются, так что все точки в списке могут отображаться на холсте даже тогда, когда я использую сценарий на своем телефоне.
В R или Python я бы использовал такой пакет, как PyKrige, для выполнения кригинга, но соединитель «Расширенная аналитика» для Qlik Sense, который я использую, недоступен мне в качестве расширения на стороне сервера из-за лицензионных ограничений....
Для своей диссертации я работаю над проектом компьютерного зрения. Частично это связано с множеством преобразований координат, с которыми я сейчас борюсь. Я просто не могу вращать свою систему координат по произвольной оси.
Я начинаю с 3D координат...
В настоящее время я работаю с анализом пространственных данных, используя Scanpy и пытаюсь визуализировать мои данные, используя SC.PL.Patial Function. Тем не менее, я столкнулся с KeeError при попытке указать параметр Library_id как «изображения»....
Во многих точках моей кодовой базы я использую следующий шаблон:
template
class Example
{
static_assert((dim == 1 || dim == 2 || dim == 3), Example objects must be defined in one, two, or three dimensions. );
// other stuff
};