Faire jouer ArcGIS for Desktop sur le haut-parleur lorsque le modèle est terminé?

16

Je voudrais pouvoir dormir pendant que les modèles fonctionnent pendant une grande partie de la nuit dans ArcGIS for Desktop.

J'aimerais qu'ArcGIS for Desktop émette un son à la fin, pour m'éveiller.

Est-ce possible?

Aaron
la source
3
Je voudrais qu'il m'envoie un e-mail alors peut-être que la réponse pourrait inclure les deux (verser une bière serait bien aussi). Great Q.
Si vous ne savez pas - juste GIS
1
Chr (7) BEL joue un son de haut-parleur ... cependant si vous êtes intéressé par juste un peu de python, je pourrais vous aider. Je ne peux pas aider avec la bière.
Michael Stimson
Ah! Un e-mail fonctionnerait, je peux faire sonner mon programme de messagerie.
Aaron
5
J'envisage une solution de type Rube Goldberg (sp?) Qui serait la plus appropriée. Au fur et à mesure que le modèle termine, un bras d'ordinateur mécanique frappe la trappe qui libère une balle qui laisse éventuellement tomber une serviette humide sur votre visage ou similaire.
Si vous ne savez pas - juste GIS

Réponses:

18

J'aime vraiment la réponse d'Aarons, mais quelque chose de plus simple et local:

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

en utilisant le module de sous-processus, Windows Media Player ouvre un fichier.

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

Bien sûr, l'échantillon de musique est plus susceptible de vous endormir, donc quelque chose de plus comme mon réveil pourrait être plus approprié.

Mais bien sûr, c'est si simple que vous pouvez faire les deux, il suffit de coller cela à la fin du code d'Aarons.

Michael Stimson
la source
1
Excellente idée! Cela pourrait également être facilement intégré comme outil de script.
Aaron
2
J'adore cette idée de script. Je suggérerais un mp3 comme la musique du thème du National Geographic , ou Where in the World is Carmen Sandiego , mais cela pourrait être un peu trop geek de moi ...
Erica
Le goût musical de chacun est différent. J'ai choisi une chanson qui était bruyante et ennuyeuse car elle est plus susceptible d'attirer l'attention. Flight of the Valkyries serait un excellent choix si vous ne pouviez pas y dormir. Si vous étiez vraiment désireux, vous pourriez mettre un paramètre du fichier à lire et le faire rapporter avec des tonalités courtes aux points critiques comme preuve de vie
Michael Stimson
et encore une fois, j'ai anticipé votre réponse avec un AML de 1998 qui émet un bip ennuyeux;)
Stephen Lead
Ha ha @StephenLead, dans ArcInfo à peu près tout a fait un bip ennuyeux. Vous pourriez vous éloigner et faire un café et savoir que votre processus se déroulait toujours par la chaîne de bips. Cela suppose bien sûr que le haut-parleur de votre système est installé.
Michael Stimson
16

Que diriez-vous de vous envoyer un e-mail lorsque le modèle est terminé? Assurez-vous de configurer votre téléphone pour qu'il vous donne une tonalité lorsque vous recevez l'e-mail envoyé via le script Python joint. Il est conçu pour être exécuté comme un outil de script dans ModelBuilder. Si vous n'êtes pas familier avec les outils de script, suivez ces instructions . Veuillez noter que cela est configuré pour fonctionner avec gmail. L'outil est conçu pour fonctionner comme suit (notez la condition préalable attachant la variable bufferedPoints et l'outil de script sendEmail):

entrez la description de l'image ici


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)

Instructions pour créer l'outil de script:

Créer le script

  1. Ouvrir IDLE > Fichier> Nouvelle fenêtre
  2. Copiez et collez le script de ce message dans la nouvelle fenêtre
  3. Enregistrer sous> "SendEmail.py"

Créer l'outil de script

  1. Cliquez avec le bouton droit sur un dossier> Nouveau> Boîte à outils (c'est là que l'outil de script sera situé)
  2. Cliquez avec le bouton droit sur la boîte à outils> Ajouter> Script ...
  3. Remplissez Nom, Lable, Description et cochez "Stocker le chemin relatif ...."
  4. Cliquez sur Suivant
  5. Ajoutez le script que vous avez créé "SendEmail.py"
  6. Cliquez sur Suivant
  7. Remplissez les paramètres exactement comme sur la figure ci-jointe.
  8. Cliquez sur Terminer
  9. Localisez le nouvel outil dans la boîte à outils et utilisez-le comme n'importe quel autre outil dans ModelBuilder

entrez la description de l'image ici

Aaron
la source
1
@ Michael Miles-Stimson Drôle de coïncidence, il n'y a plus trop d'Aaron. Cet outil de script fonctionne directement via le service de messagerie et est indépendant de Outlook. Cependant, si Outlook peut vous lire des e-mails et que votre téléphone peut vous avertir lorsque vous recevez un e-mail via Outlook, cela devrait fonctionner correctement.
Aaron
1
Je travaille avec un Aaron, il est cool aussi. Je faisais référence à e - mails sortants , essentiellement je serais moi emailing .. message de moi à me envoyé de l' ordinateur de travail et lu / notify sur ordinateur à la maison sur VPN. Outlook peut être configuré pour lire un son lorsqu'un e-mail arrive.
Michael Stimson
1
D'ACCORD. C'est très prometteur! Je ne comprends pas très bien où mettre mon adresse e-mail réelle. Dois-je le remplacer par l'expression "gmail_user"? ou est-ce la variable? Quelles sont les choses "sys.argv [#]"? Est-ce là que je mets mes informations?
Aaron
1
@Aaron sys.argv est la liste contenant les arguments passés au script Python depuis la ligne de commande. C'est l'équivalent d'utiliser arcpy.GetParameterAsText ( i )
om_henners
3
Si cela peut aider quelqu'un, je l' ai mis en place un exemple essentiel qui montre comment utiliser la réponse de @ Aaron comme emballage pour notifier le succès ou l' échec d'un script.
om_henners