Czy ArcGIS for Desktop może odtwarzać dźwięk z głośnika po ukończeniu modelu?

16

Chciałbym móc spać, gdy Modele pracują przez większą część nocy w ArcGIS na komputery.

Chciałbym, aby ArcGIS for Desktop odtwarzał dźwięk po jego zakończeniu, aby mnie obudzić.

czy to możliwe?

Aaron
źródło
3
Chciałbym, aby wysłał mi e-mail, więc może odpowiedź może zawierać jedno i drugie (nalej piwo również byłoby fajne). Świetnie.
Jeśli nie wiesz - po prostu GIS
1
Chr (7) BEL odtwarza dźwięk głośnika ... jednak jeśli jesteś zainteresowany tylko małym pytonem, mógłbym pomóc. Nie mogę pomóc z piwem.
Michael Stimson
Ach! E-mail działałby, mogę wyłączyć dźwięk mojego programu pocztowego.
Aaron
5
Sądzę, że najbardziej odpowiednie byłoby rozwiązanie typu Rube Goldberg (sp?). Gdy model kończy mechaniczne ramię komputera uderza w drzwi pułapki, która uwalnia piłkę, która ostatecznie upuszcza mokry ręcznik na twarz lub podobny przedmiot.
Jeśli nie wiesz - po prostu GIS

Odpowiedzi:

18

Naprawdę podoba mi się odpowiedź Aarons, ale coś prostszego i lokalnego:

subprocess.Popen([r"C:\Program Files (x86)\Windows Media Player\wmplayer.exe",r"C:\Users\Public\Music\Sample Music\Maid with the Flaxen Hair.mp3"])

użycie modułu podprocesu powoduje, że Windows Media Player otwiera plik.

import subprocess

wmPlay = r"C:\Program Files (x86)\Windows Media Player\wmplayer.exe"
PlayFile= r"C:\Users\Public\Music\Sample Music\Maid with the Flaxen Hair.mp3"
subprocess.Popen([wmPlay,PlayFile])

Oczywiście próbka muzyki może cię bardziej zasnąć, więc coś bardziej podobnego do mojego budzika może być bardziej odpowiednie.

Ale oczywiście, że takie proste Państwo mogli zrobić zarówno, po prostu tack że na końcu kodu Aarons.

Michael Stimson
źródło
1
Świetny pomysł! Można to również łatwo włączyć jako narzędzie skryptowe.
Aaron
2
Podoba mi się ten pomysł na skrypt. Sugerowałbym mp3 w stylu muzyki National Geographic lub Where in the World is Carmen Sandiego , ale to może być dla mnie trochę zbyt maniakiem ...
Erica
Każdy ma inny gust muzyczny. Wybrałem piosenkę, która była głośna i denerwująca, ponieważ bardziej prawdopodobne jest zwrócenie na nią uwagi. Lot Walkirii byłby doskonałym wyborem, gdybyś raczej nie spał. Jeśli naprawdę chciałeś, możesz ustawić parametr pliku do odtworzenia i uzyskać raport z krótkimi tonami w krytycznych punktach jako dowód życia
Michael Stimson
i znowu uprzedziłem twoją odpowiedź 1998 AML, który wydaje denerwujący dźwięk;)
Stephen Lead
Ha ha @StephenLead, w ArcInfo prawie wszystko wydało denerwujący dźwięk. Możesz odejść i zaparzyć kawę i wiedzieć, że proces wciąż przebiega przez łańcuch dźwięków. To oczywiście zakłada, że ​​głośnik systemowy jest zainstalowany.
Michael Stimson
16

Co powiesz na e-mail, kiedy model będzie gotowy? Pamiętaj, aby ustawić telefon tak, aby wysyłał dźwięk, gdy otrzymasz wiadomość e-mail wysłaną za pomocą załączonego skryptu Python. Jest przeznaczony do uruchamiania jako narzędzie skryptowe w ModelBuilder. Jeśli nie znasz pracy z narzędziami skryptowymi, postępuj zgodnie z tymi instrukcjami . Nie należy tego konfigurować do pracy z Gmailem. Narzędzie działa w następujący sposób (zwróć uwagę na warunek dołączenia zmiennej bufferedPoints i narzędzia skryptowego sendEmail):

wprowadź opis zdjęcia tutaj


import smtplib, os, arcpy
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders

# Fill in the necessary blanks here
gmail_user = sys.argv[1]
gmail_pwd = sys.argv[2]

# The parameters
to = sys.argv[3]
subject = sys.argv[4]
text = sys.argv[5]

def mail(to, subject, text):
    msg = MIMEMultipart()

    msg['From'] = gmail_user
    msg['To'] = to
    msg['Subject'] = subject

    # Attaches a text message to the e-mail
    msg.attach(MIMEText(text))

    mailServer =smtplib.SMTP("smtp.gmail.com", 587)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(gmail_user, gmail_pwd)
    mailServer.sendmail(gmail_user, to, msg.as_string())
    mailServer.close()

mail(to, subject, text)

Instrukcje tworzenia narzędzia skryptowego:

Utwórz skrypt

  1. Otwórz IDLE > Plik> Nowe okno
  2. Skopiuj i wklej skrypt tego postu do nowego okna
  3. Zapisz jako> „SendEmail.py”

Utwórz narzędzie skryptowe

  1. Kliknij folder prawym przyciskiem myszy> Nowy> Przybornik (w tym miejscu będzie znajdować się narzędzie skryptowe)
  2. Kliknij prawym przyciskiem myszy przybornik> Dodaj> Skrypt ...
  3. Wpisz nazwę, etykietę, opis i zaznacz „Zapisz ścieżkę względną ....”
  4. Kliknij Dalej
  5. Dodaj utworzony skrypt „SendEmail.py”
  6. Kliknij Dalej
  7. Wpisz parametry dokładnie tak, jak na załączonym rysunku.
  8. Hit Finish
  9. Znajdź nowe narzędzie w skrzynce narzędzi i używaj go tak, jak każdego innego narzędzia w ModelBuilder

wprowadź opis zdjęcia tutaj

Aaron
źródło
1
@ Michael Miles-Stimson Zabawny zbieg okoliczności, nie ma już zbyt wielu Aarona. To narzędzie skryptowe działa bezpośrednio za pośrednictwem usługi e-mail i jest niezależne od programu Outlook. Jeśli jednak program Outlook może odczytać wiadomość e-mail, a telefon może powiadomić Cię o otrzymaniu wiadomości e-mail za pośrednictwem programu Outlook, powinien działać dobrze.
Aaron
1
Pracuję z Aaronem, on też jest fajny. Ja odnoszę się do wychodzącej wiadomości e-mail , w istocie będę wysyłając wiadomość od siebie .. ja do mnie wysłane z komputera w pracy i odczytu / zawiadomić na komputerze domowym na VPN. Program Outlook można skonfigurować tak, aby odtwarzał dźwięk po otrzymaniu wiadomości e-mail.
Michael Stimson
1
DOBRZE. To bardzo obiecujące! Nie bardzo rozumiem, gdzie umieścić mój rzeczywisty adres e-mail. Czy mogę zastąpić je wyrażeniem „użytkownik_gmaila”? czy jest to zmienna? Co to są „sys.argv [#]”? Czy to tam umieszczam moje informacje?
Aaron
1
@Aaron sys.argv to lista zawierająca argumenty przekazane do skryptu Python z wiersza poleceń. Jest to odpowiednik użycia arcpy.GetParameterAsText ( i )
om_henners
3
Jeśli komukolwiek to pomaga, przygotowałem przykładową listę, która pokazuje, jak użyć odpowiedzi @Aaron jako opakowania, aby powiadomić o powodzeniu lub niepowodzeniu skryptu.
om_henners