Quando ArcGIS per desktop riproduce l'audio sull'altoparlante al completamento del modello?


16

Vorrei poter dormire mentre i modelli sono in esecuzione per gran parte della notte in ArcGIS per desktop.

Vorrei che ArcGIS for Desktop riproducesse un suono al termine, per svegliarmi.

È possibile?


3
Mi piacerebbe inviarmi un'e-mail, quindi forse la risposta potrebbe includere entrambi (anche versare una birra sarebbe bello). Grande domanda
Se non lo sai, basta GIS il

1
Chr (7) BEL riproduce il suono di un altoparlante ... tuttavia, se sei interessato a un po 'di pitone, posso aiutarti. Non posso fare a meno con la birra.
Michael Stimson,

Ah! Un'e-mail funzionerebbe, posso disattivare il mio programma di posta elettronica.
Aaron,

5
Immagino che una soluzione simile a Rube Goldberg (sp?) Sarebbe la più appropriata. Man mano che il modello completa un braccio meccanico del computer colpisce la botola che rilascia una palla che alla fine fa cadere un asciugamano bagnato sul viso o simili.
Se non lo sapete, basta GIS il

Risposte:


18

Mi piace molto la risposta di Aaron, ma qualcosa di più semplice e locale:

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"])

l'utilizzo del modulo sottoprocesso provoca l'apertura di un file da parte di Windows Media Player.

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])

Ovviamente è più probabile che la musica campione ti metta a dormire, quindi qualcosa di più simile al tono della sveglia potrebbe essere più adatto.

Ma ovviamente è così semplice che potresti fare entrambe le cose, basta applicarlo alla fine del codice di Aaron.


1
Ottima idea! Questo potrebbe anche essere facilmente incorporato come strumento di script.
Aaron

2
Adoro questa idea di sceneggiatura. Suggerirei un mp3 come la musica a tema del National Geographic , o Where in the World è Carmen Sandiego , ma potrebbe essere un po 'troppo geniale da parte mia ...
Erica,

Il gusto musicale di ognuno è diverso. Ho scelto una canzone che fosse rumorosa e fastidiosa poiché ha maggiori probabilità di attirare l'attenzione. Flight of the Valkyries sarebbe una scelta eccellente se non dovessi dormire. Se tu fossi davvero appassionato potresti inserire un parametro del file da riprodurre e farlo riportare con toni brevi in ​​punti critici come prova della vita
Michael Stimson,

e ancora una volta, ho anticipato la tua risposta con un AML del 1998 che emette un fastidioso bip;)
Stephen Lead,

Ah ah @StephenLead, in ArcInfo quasi tutto ha emesso un fastidioso bip. Potresti andartene e fare un caffè e sapere che il tuo processo stava ancora andando avanti con la catena di segnali acustici. Questo ovviamente presuppone che l'altoparlante di sistema sia installato.
Michael Stimson,

16

Che ne dici di e-mail te stesso quando il modello è finito? Assicurati di impostare il telefono affinché ti dia un tono quando ricevi l'e-mail inviata tramite lo script Python allegato. Questo è progettato per essere eseguito come strumento di script in ModelBuilder. Se non si ha familiarità con gli strumenti di script, seguire queste istruzioni . Per favore, non è configurato per funzionare con Gmail. Lo strumento è progettato per funzionare nel modo seguente (notare la condizione preliminare che collega la variabile bufferedPoints e lo strumento di script sendEmail):

inserisci qui la descrizione dell'immagine


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)

Istruzioni per la creazione dello strumento di script:

Crea lo script

  1. Apri IDLE > File> Nuova finestra
  2. Copia e incolla lo script di questo post nella nuova finestra
  3. Salva come> "SendEmail.py"

Crea lo strumento di script

  1. Fare clic con il tasto destro su una cartella> Nuovo> Casella degli strumenti (Qui è dove si trova lo strumento di script)
  2. Casella degli strumenti del tasto destro del mouse> Aggiungi> Script ...
  3. Inserire Nome, Lable, Descrizione e selezionare "Memorizza percorso relativo ...."
  4. Premi Avanti
  5. Aggiungi lo script che hai creato "SendEmail.py"
  6. Premi Avanti
  7. Compilare i parametri esattamente come nella figura allegata.
  8. Hit Finish
  9. Individua il nuovo strumento nella casella degli strumenti e utilizzalo come faresti con qualsiasi altro strumento in ModelBuilder

inserisci qui la descrizione dell'immagine


1
@ Michael Miles-Stimson Divertente coincidenza, non ci sono più troppi Aaron. Questo strumento di script funziona direttamente tramite il servizio di posta elettronica ed è indipendente da Outlook. Tuttavia, se Outlook è in grado di leggere la tua e-mail e il tuo telefono può avvisarti quando ricevi un'e-mail tramite Outlook, dovrebbe funzionare bene.
Aaron

1
Lavoro con un Aaron, anche lui è forte. Mi riferivo alla posta in uscita , essenzialmente sarei emailing me stesso .. messaggio da me a me inviato dal computer di lavoro e leggo / notify sul computer di casa su VPN. Outlook può essere configurato per riprodurre un suono quando arriva un'e-mail.
Michael Stimson,

1
OK. Questo è molto promettente! Non capisco bene dove mettere il mio vero indirizzo e-mail. Lo sostituisco con la frase "gmail_user"? o è quella la variabile? Quali sono le cose "sys.argv [#]"? È qui che ho messo le mie informazioni?
Aaron,

1
@Aaron sys.argv è l'elenco contenente gli argomenti passati allo script Python dalla riga di comando. È l'equivalente dell'uso di arcpy.GetParameterAsText ( i )
om_henners,

3
Se aiuta nessuno, ho messo su un esempio nocciolo che mostra come usare la risposta @Aaron s' come un wrapper di notificare il successo o il fallimento di uno script.
om_henners,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.