Коли ArcGIS для робочого столу відтворює звук на динаміку, коли модель завершується?


16

Мені б хотілося спати, поки Моделі працювали більшу частину ночі в ArcGIS for Desktop.

Мені б хотілося, щоб ArcGIS для Desktop відтворював звук, коли він закінчується, щоб розбудити мене.

Чи можливо це?


3
Я хотів би, щоб він надіслав мені електронну пошту, так що, можливо, відповідь могла б включити і те, і інше (Налийте пиво, було б добре). Велике запитання
Якщо ви не знаєте - просто ГІС

1
Chr (7) BEL відтворює звук динаміка ... однак, якщо вас цікавить лише маленький пітон, я можу допомогти. Не можу допомогти з пивом, хоча.
Майкл Стимсон

Ах! Електронний лист буде працювати, я можу вимкнути свою програму електронної пошти.
Аарон

5
Я вважаю, що рішення Руба Голдберга (sp?) Було б найбільш підходящим. Коли модель комплектується механічною комп'ютерною рукою, потрапляє у дверну пастку, яка випускає кульку, яка з часом падає мокре рушник на обличчя чи подібне.
Якщо ви не знаєте - просто ГІС

Відповіді:


18

Мені дуже подобається відповідь Ааронів, але щось більш просте і місцеве:

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

використання модуля підпроцесу викликає медіаплеєр Windows для відкриття файлу.

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

Звичайно, зразкова музика, швидше за все, ляже спати, щоб щось більше, як мій сигнал будильника, могло бути більш підходящим.

Але, звичайно, це так просто, що ви можете зробити і те, і інше, просто торкніться цього в кінці коду Аарона.


1
Відмінна ідея! Це також може бути легко включено як інструмент сценарію.
Аарон

2
Любіть цю ідею сценарію. Я б запропонував такий mp3, як музика на тему National Geographic , або Де в світі є Кармен Сандієго , але це може бути трохи надто прискіпливо до мене ...
Еріка,

Музичний смак у всіх різний. Я вибрав пісню, яка була голосною і дратівливою, оскільки це швидше приверне увагу. Політ Валкірії був би відмінним вибором, якби ви навряд чи спали. Якщо ви дуже зацікавлені, ви можете ввести параметр відтворюваного файлу і отримати його звіт із короткими тонами у критичних точках як доказ життя
Майкл Стимсон

і знову, я передумовив вашу відповідь AML 1998 року, який робить дратівливий звуковий сигнал;)
Стівен Ведучий

Ха-ха @StephenLead, в ArcInfo майже все зробив дратівливий звуковий сигнал. Ви могли б піти геть і попити кави, і знати, що ваш процес все ще йшов лише ланцюжком звукових сигналів. Звичайно, це передбачає, що ваш динамік системи встановлений.
Майкл Стімсон

16

Як щодо електронної пошти, коли модель закінчена? Не забудьте налаштувати телефон, щоб він надавав тону, коли ви отримуєте електронну пошту, надіслану через доданий сценарій Python. Це розроблено для запуску як інструмент сценарію в ModelBuilder. Якщо ви не знайомі з роботою з інструментами сценаріїв, дотримуйтесь цих інструкцій . Не забувайте, що це налаштовано для роботи з gmail. Інструмент призначений для роботи наступним чином (зверніть увагу на попередню умову, що додає змінну buferiPoints та інструмент сценарію sendEmail):

введіть тут опис зображення


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)

Інструкції по створенню інструмента сценарію:

Створіть сценарій

  1. Відкрийте IDLE > Файл> Нове вікно
  2. Скопіюйте та вставте сценарій у цю публікацію до нового вікна
  3. Зберегти як> "SendEmail.py"

Створіть інструмент сценарію

  1. Клацніть правою кнопкою миші на папці> Створити> Панель інструментів (тут розміщується інструмент сценарію)
  2. Клацніть правою кнопкою миші панель інструментів> Додати> Сценарій ...
  3. Заповніть Ім'я, Lable, Опис та встановіть прапорець "Зберегти відносний шлях ...."
  4. Натисніть Далі
  5. Додайте створений вами сценарій "SendEmail.py"
  6. Натисніть Далі
  7. Заповніть параметри точно так, як на малюнку, що додається.
  8. Хіт Фініш
  9. Знайдіть новий інструмент у вікні інструментів та використовуйте, як і будь-який інший інструмент у ModelBuilder

введіть тут опис зображення


1
@ Майкл Майлз-Стимсон Забавний збіг обставин, Аарона вже не надто багато. Цей інструмент сценарію працює безпосередньо через службу електронної пошти і не залежить від перспектив. Однак якщо Outlook може прочитати вам електронну пошту, і ваш телефон може повідомити вас про отримання електронної пошти через Outlook, це має спрацювати чудово.
Аарон

1
Я працюю з Аароном, він теж крутий. Я мав на увазі вихідну електронну пошту , по суті я б сам надсилав електронну пошту .. повідомлення від мене до мене надсилалося з робочого комп’ютера та читалось / повідомлялося на домашньому комп’ютері на VPN. Перспективи можуть бути налаштовані на відтворення звуку, коли надходить електронний лист.
Майкл Стімсон,

1
ДОБРЕ. Це дуже перспективно! Я не дуже розумію, куди мені поставити фактичну адресу електронної пошти. Чи підміняю це словосполученням "gmail_user"? чи це змінна? Що таке речі "sys.argv [#]"? Це я туди, де я розміщую свою інформацію?
Аарон

1
@Aaron sys.argv - це список, що містить аргументи, передані сценарію Python з командного рядка. Це еквівалент використання arcpy.GetParameterAsText ( i )
om_henners

3
Якщо це допомагає комусь, я висунув приклад суті, який показує, як використовувати відповідь @Aaron в якості обгортки, щоб повідомити про успіх або провал сценарію.
om_henners
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.