Las contraseñas se usan mucho para reforzar el acceso a los recursos. Los atacantes usarán muchas técnicas para descubrir las contraseñas de los usuarios y conseguir acceso no autorizado a recursos o datos. Para protegerse mejor, es importante que entienda en qué consiste una contraseña segura y cómo almacenarla en forma segura.
En este humilde post vamos a intentar comprender un poco como deberíamos usar contraseñas seguras.
Las contraseñas seguras tienen cuatro requisitos principales que se detallan a continuación por orden de importancia:
El usuario debe poder recordar la contraseña fácilmente
Otra persona no debe poder adivinar la contraseña.
Un programa no debe poder adivinar ni descubrir la contraseña.
Debe ser compleja, incluyendo números, símbolos y una combinación de letras mayúsculas y minúsculas. Basándose en la lista anterior, el primer requisito, probablemente, sea el más importante porque usted debe poder recordar su contraseña. Por ejemplo, la contraseña «#4sFrX^-aartPOknx25_70!xAdk»
Una excelente forma de crear contraseñas seguras es elegir cuatro o más palabras al azar y concatenarlas. La contraseña «televisionranabotasiglesia» es más segura que «[email protected]#81». Observe que, si bien la segunda contraseña cumple con las políticas antes descritas, los programas descifradores de contraseñas (cracks) son muy eficientes para detectar este tipo de contraseña. Aunque muchos conjuntos de directivas de contraseña no aceptarán la primera contraseña, «televisionranabotasiglesia», esta es mucho más segura que la segunda.
Es mucho más fácil de recordar para el usuario (especialmente, si está asociada con una imagen), es muy larga y su factor aleatorio hace que sea más difícil de adivinar para los programas descifradores de contraseñas. Con una herramienta de creación de contraseñas en línea, cree contraseñas basadas en el conjunto común de directivas de contraseña para empresas antes descrito.
Seleccione las opciones para cumplir con el conjunto de directivas de contraseña.
Genere la contraseña.
¿La contraseña generada es fácil de recordar?
Mediante una herramienta de creación de contraseñas en línea, cree contraseñas basadas en palabras al azar. Tenga en cuenta que, como las palabras se escriben unidas, no se consideran como palabras del diccionario.
Genere una contraseña de palabras al azar haciendo clic en Generate Another! en la parte superior de la página web.
¿La contraseña generada es fácil de recordar?
Almacenamiento seguro de contraseñas Si el usuario elige usar un administrador de contraseñas, la primera característica de una contraseña segura puede ignorarse porque el usuario tiene acceso al administrador de contraseñas en todo momento. Tenga presente que algunos usuarios solo confían en su propia memoria para guardar sus contraseñas. Los administradores de contraseñas, tanto locales como remotos, deben tener un almacén de contraseñas, que podría verse comprometido. El almacén de contraseñas del administrador de contraseñas debe tener un cifrado seguro y el acceso a este debe controlarse estrictamente. Gracias a aplicaciones de teléfonos móviles e interfaces web, los administradores de contraseñas basados en la nube ofrecen acceso ininterrumpido y en cualquier momento a los usuarios
¿Qué es una contraseña segura? Teniendo presentes las características de contraseña segura provistas al inicio de este post, elija una contraseña que sea fácil de recordar pero difícil de adivinar. Está bien usar contraseñas complejas siempre que no afecten requisitos más importantes como la capacidad para recordarlas fácilmente. Si se usa un administrador de contraseñas, la necesidad de que puedan recordarse fácilmente puede omitirse. A continuación, se proporciona un resumen rápido:
Elija una contraseña que pueda recordar.
Elija una contraseña que otra persona no pueda asociar con usted.
Elija contraseñas diferentes y nunca use la misma contraseña para servicios diferentes.
Está bien usar contraseñas complejas siempre que esto no las haga difíciles de recordar.
Las siglas MLE corresponden al algoritmo de estimación de máxima verosimilitud y se usa por ejemplo para la desagregación de energía.
Es responsable cuando se desea un solo aparato desagregado en lugar de desagregar muchos. Además, el aparato debe ser mayoritariamente resistivo para lograr precisión.
Se basa en eventos emparejados:
- OnPower: valor delta cuando el aparato está encendido.
- OffPOwer: valor delta cuando el aparato está apagado.
- Duración: duración entre encendido y apagado.
Además, para descartar muchos eventos poco probables, se establecen tres restricciones:
- PowerNoise: valor delta mínimo por debajo del cual el delta se considera ruido.
- PowerPair: diferencia máxima entre OnPower y OffPower (considerando electrodomésticos con consumo de energía constante).
- timeWindow: marco de tiempo máximo entre Onpower y Offpower.
Las características antes mencionadas se modelan con gaussianas, mezclas gaussianas o Poisson. Para cada evento emparejado entrante, el algoritmo extraerá estas tres características y evaluará la probabilidad de máxima verosimilitud de que ese evento emparejado sea un dispositivo determinado.
IMPORTACIONES
import numpy as np
import pandas as pd
from os.path import join
from pylab import rcParams
import matplotlib.pyplot as plt
%matplotlib inline
rcParams['figure.figsize'] = (13, 6)
#plt.style.use('ggplot')
from datetime import datetime as datetime2
from datetime import timedelta
import nilmtk
from nilmtk.disaggregate.maximum_likelihood_estimation import MLE
from nilmtk import DataSet, TimeFrame, MeterGroup, HDFDataStore
from scipy.stats import poisson, norm
from sklearn import mixture
import warnings
warnings.filterwarnings("ignore")
Funciones
def get_all_appliances(appliance):
# Filtering by appliances:
print "Fetching " + appliance + " over data loaded to nilmtk."
metergroup = nilmtk.global_meter_group.select_using_appliances(type=appliance)
if len(metergroup.appliances) == 0:
print "None " + appliance + " found on memory."
pass
# Selecting only single meters:
print "Filtering to get one meter for each " + appliance
meters = [meter for meter in metergroup.meters if (len(meter.appliances) == 1)]
metergroup = MeterGroup(meters)
print metergroup
print "Found " + str(len(metergroup.meters)) + " " + appliance
return metergroup
def get_all_trainings(appliance, train):
# Filtering by appliances:
print "Fetching " + appliance + " over data train data."
elecs = []
for building in train.buildings:
print "Building " + str(building) + "..."
elec = train.buildings[building].elec[appliance]
if len(elec.appliances) == 1:
print elec
print "Fetched elec."
elecs.append(elec)
else:
print elec
print "Groundtruth does not exist. Many appliances or None"
metergroup = MeterGroup(elecs)
return metergroup
In [8]:train = DataSet(join(path, 'ukdale.h5'))
test = DataSet(join(path, 'ukdale.h5'))
train.set_window(end="17-5-2013")
test.set_window(start="17-5-2013")
#zoom.set_window(start="17-5-2013")
print('loaded ' + str(len(ukdale.buildings)) + ' buildings')
loaded 5 buildings
Obteniendo los datos de entrenamiento
Es posible que el dispositivo seleccionado no esté entrenado desde ElecMeters donde se presentan otros dispositivos, ya que podemos extraer la verdad básica
# Appliance to disaggregate:
applianceName = 'kettle'
# Groundtruth from the training data:
metergroup = get_all_trainings(applianceName,train)
Fetching kettle over data train data.
Building 1...
ElecMeter(instance=10, building=1, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1), Appliance(type='food processor', instance=1), Appliance(type='toasted sandwich maker', instance=1)])
Groundtruth does not exist. Many appliances or None
Building 2...
ElecMeter(instance=8, building=2, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.
Building 3...
ElecMeter(instance=2, building=3, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.
Building 4...
ElecMeter(instance=3, building=4, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1), Appliance(type='radio', instance=1)])
Groundtruth does not exist. Many appliances or None
Building 5...
ElecMeter(instance=18, building=5, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.
Algoritmo MLE
Capacitación
Primero, creamos el modelo
mle = MLE()
Luego, actualizamos el parámetro del modelo con algunos valores de adivinación.
Primero adivine las características: mezclas gaussianas de encendido y apagado y poisson de duración.
# setting parameters in the model:
mle.update(appliance=applianceName, resistive=True, units=('power','active'), thDelta= 1500, thLikelihood= 1e-10, powerNoise= 50, powerPair= 100, timeWindow= 400, sample_period= '10S', sampling_method='first')
# Settings the features parameters by guessing:
mle.onpower = {'name':'gmm', 'model': mixture.GMM(n_components=2)}
mle.offpower = {'name':'gmm', 'model': mixture.GMM(n_components=2)}
mle.duration = {'name':'poisson', 'model': poisson(0)}
Entrenamos el modelo con todas las ocurrencias de ese modelo de dispositivo que se encuentran en los datos de entrenamiento.
mle.train(metergroup)
('kettle', 1)
Training on chunk
Samples of onpower: 214
Samples of offpower: 214
Samples of duration: 214
Training onpower
Training offpower
Training duration
('kettle', 2)
Training on chunk
Samples of onpower: 92
Samples of offpower: 92
Samples of duration: 92
Training onpower
Training offpower
Training duration
('kettle', 3)
Chunk empty
Y luego visualizamos características con featureHist_colors () para ver la distribución y cuántas muestras tenemos para cada dispositivo (el mismo modelo de diferentes casas).
mle.featuresHist_colors()
A veces, tenemos más eventos de algunas casas que de otras, como vemos en la figura de arriba. Por lo tanto, necesitamos recortar información para mantener el mismo número de muestras para cada casa.
('kettle', 1)
Training on chunk
Samples of onpower: 214
Samples of offpower: 214
Samples of duration: 214
Training onpower
Training offpower
Training duration
('kettle', 2)
Training on chunk
Samples of onpower: 92
Samples of offpower: 92
Samples of duration: 92
Training onpower
Training offpower
Training duration
('kettle', 3)
Chunk empty
Retraining onpower
Retraining offpower
Retraining duration
Una vez que tengamos la distribución del modelo final para cada característica. Necesitamos la integridad de cada distribución. Cada CDF debe estar delimitado por uno.
# Building to disaggregate:
building = 2
mains = test.buildings[building].elec.mains()
# File to store the disaggregation
filename= '/home/energos/Escritorio/ukdale-disag-ml.h5'
output = HDFDataStore(filename, 'w')
El siguiente paso tomará unos minutos.
mle.disaggregate(mains, output)
25656 events found.
12419 onEvents found
4244 onEvents no paired.
1 chunks disaggregated
También recibimos cierta información, como el número total de eventos, el número de eventos de encendido, el número de eventos que no se han emparejado y los fragmentos desglosados.
Kodi es un software gratuito de código abierto que puede descargarse en su dispositivo Raspberry Pi y con él puede ver películas, programas de televisión, deportes en vivo y todo lo que desee. Con 6 sencillos pasos podrás saber cómo instalar Kodi en Raspberry Pi y tu Kodi estará listo y funcionando en poco tiempo. El proceso de instalación de Kodi es diferente para la primera generación de Raspberry Pi, mientras que instalar la mejor VPN para Kodi en raspberry Pi es un método un poco complicado que ocurre con el repositorio de Zomboided.
La transmisión de Kodi en su dispositivo Raspberry Pi sin una VPN compromete sus datos personales. Miles de usuarios reciben avisos de DMCA por ver contenido gratuito a través de Kodi. Una VPN puede mantener su identidad anónima y segura y lo ayuda a protegerse de los avisos de DMCA, problemas de derechos de autor y permite el desbloqueo de varios complementos.
CÓMO INSTALAR KODI EN RASPBERRY PI
Cosas necesarias para configurar Raspberry Pi para Kodi v17.6
Antes de pasar a la instalación de Kodi en Raspberry Pi, déjame contarte las cosas que necesitarás para configurar Raspberry Pi. Se requieren los siguientes periféricos para configurar Raspberry Pi:
1. Dispositivo Raspberry Pi
Es obvio que sin el dispositivo en sí no puede continuar. Asegúrese de comprar un modelo Raspberry Pi actualizado, para que no se enfrente a ningún problema relacionado con la compatibilidad del hardware o del sistema operativo.
Cuanto más antiguas se vuelven las placas Raspberry Pi, su rendimiento comienza a disminuir. Es por eso que recomiendo a los usuarios que optimicen sus placas o compren el último modelo de Raspberry Pi.
2. El caso de Flirc Raspberry Pi
El estuche Flirc Raspberry Pi no es una necesidad esencial, pero es bueno tenerlo si planeas verlo en exceso. La razón detrás de esta recomendación es que una carcasa Flirc Raspberry Pi viene con un disipador de calor incorporado, que evita que la placa se sobrecaliente.
Muchos usuarios han informado problemas de sobrecalentamiento y esto sucede generalmente porque cuando está transmitiendo durante horas, el rendimiento de la placa se utiliza por completo. El sobrecalentamiento puede causar muchos problemas de hardware y, en ocasiones, puede provocar un cortocircuito.
Otra razón para optar por un estuche Flicr es que le da un gran aspecto a tu tabla debido a su fresco cuerpo de aluminio. Puede mantener la placa overlock sin preocuparse por los problemas de sobrecalentamiento y su placa también obtiene un nuevo aspecto excelente.
3. Cable Ethernet
Es necesario tener un cable Ethernet de alta velocidad, no solo para conectar su dispositivo a Internet, sino también para tener una buena velocidad de ancho de banda para una transmisión ininterrumpida.
4. cable HDMI
Para conectar su dispositivo Raspberry Pi a su televisor, necesitará un cable HDMI. Un cable HDMI funciona mejor que la transmisión de pantalla porque no proporciona una imagen retrasada.
5. Tarjeta de memoria microSD
Se necesita un almacenamiento externo para almacenar archivos multimedia en Raspberry Pi. Muchos usuarios optan por unidades USB, que no son lo suficientemente rápidas para extraer archivos multimedia y, a veces, ralentizan el sistema. Usar una tarjeta micro SD es siempre una mejor opción que una memoria USB.
Sin embargo, Raspberry Pi no es compatible con todas las tarjetas micro SD. Puede incluir una tarjeta micro SD junto con su Raspberry Pi en el paquete; revisa bien la tarjeta porque muchas veces estas tarjetas son de baja calidad.
Vería que las tarjetas Samsung y Kingston vienen en paquetes con dispositivos Raspberry Pi, que no son tan eficientes. Es mejor que utilice tarjetas SanDisk, que también deberían tener al menos 16 GB para garantizar una experiencia de funcionamiento fluida.
6. Adaptador de corriente micro USB
Los adaptadores de corriente no están incluidos en el paquete cuando compra una placa Raspberry Pi, por lo que debe comprarlos por separado. Asegúrese de comprar un adaptador de corriente de alta calidad compatible con su dispositivo porque a veces hay paquetes que ofrecen algunos adaptadores de corriente de bajo grado junto con las placas Raspberry Pi. Estas placas no duran mucho y pueden dañar su placa en caso de fluctuaciones de voltaje.
Cómo instalar Kodi en Raspberry Pi 1 en 6 pasos
Abra su navegador y visite el sitio web de OpenELEC > Haga clic en Descargas> Desplácese hacia abajo hasta las compilaciones de Raspberry . Hay versiones independientes para Raspberry Pi 1, 2, 3 o Zero. Seleccione la compilación de Raspberry Pi First Generation (archivo de imagen de disco)> Descargue el archivo zip en su dispositivo.
Una vez descargado el archivo zip, extraiga el archivo zip en su dispositivo.
Ahora necesitamos copiar el archivo extraído en una tarjeta micro SD, y para eso necesitamos un software llamado Rufus que crea unidades USB de arranque. Descargue el archivo desde el enlace que se presenta aquí .
Una vez descargado, abra Rufus> Aparecerá un cuadro que requerirá información> Seleccione su tarjeta SD en la opción del dispositivo> Haga clic en la imagen del disco ubicada en el cuadro.
Ahora busque el archivo que se extrajo y seleccione el archivo en particular> Presione el botón Inicio en el cuadro. El archivo se escribirá en la tarjeta SD.
Ahora retire la tarjeta SD y vuelva a colocarla en su dispositivo Raspberry Pi. Una vez que se enciende el dispositivo Raspberry Pi, se iniciará automáticamente en Kodi. Disfruta usando Kodi en Raspberry Pi.
Cómo instalar Kodi en Raspberry Pi 2
Para instalar Kodi en Raspberry Pi 2, excepto en el primer paso, todo el proceso seguirá siendo el mismo. Abra su navegador y visite el sitio web de OpenELEC > Haga clic en la pestaña Descargar ubicada en la parte superior> Desplácese hacia abajo hasta las compilaciones de Raspberry Pi> Ahora seleccione Raspberry Pi 2 (archivo de imagen de disco) y descargue el archivo zip en su dispositivo> Ahora continúe con el paso 2 de las pautas mencionadas anteriormente como se describe para la primera generación de Raspberry Pi.
Cómo instalar Kodi Krypton v17.6 en Raspberry Pi 3
Descargue la última versión de OSMC Raspberry Pi Installer desde su sitio web oficial, es decir, https://osmc.tv/download/.
Conecte la tarjeta SD para instalar Kodi y ejecute el instalador de OSMC.
Seleccione su idioma preferido> Seleccione Raspberry Pi 2/3 de la lista desplegable debajo del cuadro de idioma.
Ahora, elija la versión de la compilación que desea instalar> La opción óptima es elegir la última versión de compilación porque funciona mejor.
Ahora elija la tarjeta SD como medio de almacenamiento.
Si está utilizando un cable Ethernet, seleccione Conexión por cable o si está utilizando una conexión Wi-Fi, seleccione Inalámbrico.
Asegúrese de que la ruta de almacenamiento mencionada sea correcta.
Marque la exención de responsabilidad del acuerdo de licencia y se iniciará la descarga.
Tan pronto como se complete la instalación, OSMC se instalará en su tarjeta SD.
Después de que OSMC esté instalado en su tarjeta SD, puede usar esta tarjeta SD en su Raspberry Pi.
Conecte su tarjeta SD en su dispositivo Raspberry y conecte todos los periféricos en sus respectivos puertos.
El sistema se iniciará y se completará la instalación.
Cómo instalar Kodi en Raspbian en 9 pasos
Raspbian es un software operativo gratuito para dispositivos Raspberry Pi. Es el sistema operativo líder para Raspberry Pi y el más utilizado para el dispositivo.
Instale Raspbian Jesse en el sitio web de Raspberry Pi y abra Raspbian una vez que esté instalado.
Vaya a Menú> Preferencias> Haga clic en Configuración de Raspberry Pi.
Haga clic en Expandir el sistema de archivos.
Ahora haga clic en la pestaña Rendimiento. Si tiene Raspberry Pi 1, debe seleccionar la memoria de GPU de 128, mientras que puede seleccionar la memoria de 256 GPU para Raspberry Pi 2 y 3. Haga clic en SÍ para reiniciar.
Ahora necesitamos instalar Kodi en Raspbian. Para ello, debe asegurarse de estar conectado a Internet, Wi-Fi o Ethernet.
Haga clic en el icono de Terminal ubicado en la parte superior> Ahora copie ‘sudo apt-get update’ exactamente y péguelo en Terminal> Presione Enter> Kodi tardará unos minutos en instalarse.
Una vez que se complete la instalación, copie ‘sudo apt-get install kodi’ exactamente> Presione Enter.
Escribe Y si te pide que continúes con la instalación en la Terminal> Presiona Enter.
Ahora ve a Menú> Sonido y video> Kodi Media Center> Estás listo para usar Kodi, ¡disfrútalo!
Cómo instalar Raspberry Pi VPN en Kodi Krypton versión 17.6
La instalación de Raspberry Pi VPN no es un paseo por el parque para principiantes, pero discutiremos en detalle cómo puede instalar Raspberry Pi VPN en Kodi Krypton Versión 17 en 8 pasos. Antes de comenzar a instalar Raspberry Pi VPN en Kodi, debe crear una cuenta de Raspberry Pi VPN con cualquier servicio y luego seguir los pasos a continuación:
Necesita tener una unidad flash USB insertada en su computadora.
Transfiera o copie el repositorio Zomboided a una unidad flash USB.
Desenchufe el USB de la computadora y conéctelo a su dispositivo Raspberry Pi.
Vaya a Programas> Complementos> Obtener más> Seleccionar puntos suspensivos ‘…’ Seleccionar puntos suspensivos nuevamente> Seleccionar Instalar desde Zip.
Elija la opción de unidad flash USB de la lista> Seleccione repository.zomboided.plugins-1.0.0.zip> El repositorio tardará en instalarse.
Vaya a la página de complementos nuevamente> Haga clic en Instalar desde el repositorio> Seleccione el repositorio de complementos de Zomboided> Haga clic en Administrador de VPN para OpenVPN > Haga clic en Instalar.
Aparecerá un cuadro donde deberá seleccionar el Servicio VPN de Raspberry Pi que desee> Insertar nombre de usuario y contraseña> Disfrutar.
Asegúrese de no registrarse o pensar en probar una VPN gratuita para Kodi porque no son confiables y no son compatibles con Raspberry Pi.
Cómo instalar Raspberry Pi VPN en Kodi Jarvis versión 16
El proceso para instalar Raspberry Pi VPN en Kodi Jarvis Versión 16 sigue siendo el mismo que para Kodi Krypton Versión 17. Si necesita instalar Raspberry Pi VPN, siga los pasos descritos anteriormente.
Descargar Raspberry Pi Kodi
Para descargar Kodi en su dispositivo Raspberry Pi, necesita descargar OpenELEC para su respectivo dispositivo Raspberry Pi, mientras que por otro lado necesita descargar Rufus.
Puede obtener OpenELEC para su dispositivo Raspberry Pi 1, 2 o 3 aquí .
Puede obtener el sistema operativo Raspbian desde aquí .
Otros requerimientos
Al instalar Kodi en Raspberry Pi, también necesita tener una tarjeta micro SD con un adaptador para poder conectarla fácilmente a su ordenador. Consulte esta guía para instalar kodi en Raspbian Jessie OS.
A principios de la década de 1980, el Instituto Americano de Investigación de Energía Eléctrica y el MIT ya habían comenzado a realizar investigaciones teóricas relacionadas con la segregacion del consumo eléctrico de forma no intrusiva (los documentos representativos son: Hart, GW Monitoreo de carga de dispositivos no intrusivos, IEEE Proc 1992, 80, 1870–1891).
George W. Hart, Ed Kern y Fred Schweppe del MIT recibieron fondos del Instituto Nacional de Investigación de Energía Eléctrica para inventar el Monitor de Carga de Aparatos No Intrusivos (NALM). Es decir, supervisión de carga de dispositivos no intrusiva ( supervisión de carga de dispositivos no intrusiva) )
La literatura en este período es similar a la idea del tema, que es descomponer la diferencia de potencia de diferentes equipos eléctricos, Esta «descomposición de carga eléctrica» tiene muchos nombres. . . desagregación de carga, monitoreo de carga no intrusivo (NILM) y monitoreo de carga de dispositivo no intrusivo (NIALM o NALM) Todos significan lo mismo de todos modos. . .
El monitoreo de carga no intrusivo del consumo de energía de los electrodomésticos residenciales es en realidad: convertir la señal analógica del voltaje y la corriente de la electricidad a la casa en una señal digital y procesarla para detectar cambios en algunos parámetros.
Entre ellos, la técnica de análisis de conglomerados se utiliza para medir la variación de un conjunto de datos en determinadas categorías, y su lógica se puede utilizar para identificar cada dispositivo y la energía consumida. Para ser claros, es mediante el monitoreo de algunos de los datos identificar los dispositivos en uso (la dirección inicial de la investigación es similar a lo que pienso actualmente, que es estudiar la potencia de los equipos eléctricos ac)
La imagen de arriba es un ejemplo de un antiescarcha refrigerador libre de heladas
Otro ejemplo de ello es la supervisión no intrusiva de la carga de los dispositivos
ARRIBA (LI PENG. DESCOMPOSICIÓN Y MONITOREO DE CARGA DE ENERGÍA NO INVASIVA. TIANJIN: UNIVERSIDAD DE TIANJIN, 2009.)
Entonces, ¿ qué son la potencia reactiva y la potencia activa?..
Primero, la potencia activa. en los circuitos de ca, la parte de la energía consumida en el elemento de resistencia que se reemplaza irreversiblemente por la potencia.(POR EJEMPLO, LA CONVERSIÓN A ENERGÍA TÉRMICA, ÓPTICA O MECÁNICA) SE DENOMINA POTENCIA ACTIVA, EXPRESADA EN «P» EN VATIOS (W).refleja el tamaño de la capacidad de la fuente de alimentación de ca para trabajar en elementos de resistencia, o la cantidad de energía eléctrica convertida en otras formas de energía en una unidad de tiempo.de hecho, es la cantidad de energía eléctrica que se alterna instantáneamente en otras formas de energía durante un período de tiempo.es el promedio de la potencia instantánea de la potencia alterna durante un período de tiempo, de ahí la potencia media.
En segundo lugar, la potencia reactiva ,en los circuitos de ca, los componentes que son inductivos o capacitivos se construyen después de la adopción. el campo magnético de la del inductor o el campo eléctrico entre las placas del capacitor después de pasar bobinas inductivas el campo eléctrico entre el campo magnético o la placa del condensador.por lo tanto, la primera mitad de cada ciclo de ca ( potencia instantánea en tiempo positivo, absorberán energía de la fuente de alimentación para establecer un campo magnético o campo eléctrico, mientras que la segunda mitad (la potencia activa) instantánea, potenativa establecido o la energía del campo eléctrico regresa a la fuente de alimentación.por lo tanto, el valor promedio de esta potencia es igual a cero durante todo el ciclo.es decir, la energía de la fuente de alimentación está relacionada con la energía del campo magnético o la energía de campo eléctrico la conversión de energía reversible se lleva a cabo consumir energía.con el fin de reflejar los hechos anteriores y expresarlos, el inductor o energía intercambiada entre el inductancia o capacitancia elementos capacitivos la potencia intercambiada de un lado a otro con la alimentación de ca se denomina none potencia, expresada en «Q». La unidad es Var..la potencia reactiva es la parte de la potencia eléctrica en el circuito de ca que es convertible debido a la presencia de un elemento eléctricamente resistivo (refiriéndose al inductor puro o condensador puro), que expresa la velocidad ener intergía a la que se la fuente de alimentación de ca con el campo magnético o la energía del campo eléctrico. en la práctica, donde hay una carga inductiva de bobinas y núcleos de hierro, la potencia consumida por el campo magnético que crean durante el trabajo es potencia reactiva. sin potencia reactiva, el motor y el transformador no puedo fun magnest.
En tercer lugar, la potencia que depende LA POTENCIA TOTAL QUE PUEDEN PROPORCIONAR LAS FUENTES DE ALIMENTACIÓN DE CA, LLAMADA POTENCIA VISIBLE O POTENCIA EXPRESIVA, ES NUMÉRICAMENTE EL PRODUCTO DEL VOLTAJE Y LA CORRIENTE EN EL CIRCUITO DE CA. EL PODER DESUAL SE VA RESA ENDA ENDA S. PARA GENERAL, SE UTILIZA REPRESENTAR EL TAMAÑO DE LA CAPACIDAD DE LAS FUENTES DE ALIMENTACIÓN DE CA, COMO LOS TRANSFORMADORES.nota. potencia total-potencia activa-potencia reactiva la potencia visual es la suma vectorial de potencia activa y potencia reactiva.
Cuatro, triángulo de potencia.DEPENDIENDO DE LA RELACIÓN ENTRE POTENCIA (S), POTENCIA ACTIVA (P) Y POTENCIA REACTIVA (Q), SE PUEDEN USAR TRIÁNGULOS DE POTENCIA PARA REPRESENTARLA.COMO SE MUESTRA EN LA SIGUIENTE IMAGEN. ES UN TRIÁNGULO RECTÁNGULO CON DOS LADOS RECTÁNGULO, QYP, RESPECTIVAMENTE., EL BISEL ES S. EL ÁNGULO ENTRE SYP ES EL ÁNGULO DEL FACTOR DE POTENCIA, QUE REFLEJA EL VOLTAJE Y LA CORRIENTE EN EL CIRCUITO DE CA. fase (ángulo) entre el voltaje y la corriente en el circuito de CA. factor de potencia es cos.factor = cos (ɸ).
Teóricamente, es posible distinguir entre diferentes equipos eléctricos bajo ciertas restricciones (de hecho, se ha aplicado pero no es exacto)
DESDE UNA PERSPECTIVA NALM, HAY APROXIMADAMENTE TRES MODELOS ELÉCTRICOS:
PRIMERO: EQUIPOS ON / OFF (DOS ESTADOS), COMO BOMBILLAS O TOSTADORAS. EN CUALQUIER MOMENTO DADO, YA SEA ENCENDIDO O APAGADO.
SEGUNDO: DISPOSITIVOS POLIMÓRFICOS, COMO LAVADORAS O LAVAVAJILLAS. HAY DIFERENCIAS OBVIAS EN EL ESTADO DE ON, POR EJEMPLO, RIEGO, ENJUAGUE, ROTACIÓN, ETC. (SEGÚN LA REVISIÓN, B PRODUCTSCATA AHORA EN EEST)
EL TERCER TIPO: EQUIPO VARIABLE CONTINUO, ES EL TIPO DE EQUIPO EN ESTADO, SE PUEDE AJUSTAR MANUALMENTE EQUIPO ELÉCTRICO. ESTOS SON DIFÍCILES DE MONITOREAR UTILIZANDO MÉTODOS DE MONITOREO NO INVASIVOS.
George usó un modelo llamado máquina de estado finito (FSM) para estudiar un segundo «dispositivo polimórfico».(es una máquina de estado finito, conocida como máquina de estado)
Si la condición de «Girar el interruptor hacia abajo» se cumple en el estado de encendido, el estado se apaga
Si la condición de «Girar el interruptor hacia abajo» se cumple en el estado apagado, el estado pasa a estar encendido
Hay por degracia ejemplos mucho mas compeljos como por ejemplo el Refrigerador sin escarcha
Una cosa que los investigadores tienen en común es que deben haber construido una base de datos de carga recopilada real antes de que se desarrollara el algoritmo, y la introducción de la base de datos relevantes puede serida por el. De Oliver Parson.
A través de estas bases de datos públicas, otros investigadores también pueden usar sus propios algoritmos nuevos y los algoritmos reconocidos actuales para comparar, convertirse en estudios
En consecuencia, se desarrolló un sistema de monitoreo de carga no intrusivo relacionado. Pero cuando los tipos y cantidades de cargas son grandes, la precisión del monitoreo de carga cae drásticamente. Por lo tanto, a principios de este siglo, los investigadores generalmente adoptaron métodos para aumentar las características de carga, que incluyen:
Características transitorias: características de forma de onda de potencia transitoria , características de forma de onda de corriente de inicio, características de ruido de voltaje
Características de estado estable: características de paso de potencia, características de forma de onda de corriente de estado estable , características de trayectoria VI, características armónicas de alto orden
Otras características: características del período , características del ciclo de trabajo, características de transición de estado
Este tipo de método mejora aún más la velocidad correcta de descomposición, pero cuando problemas como el tiempo de uso del equipo se superponen, o cuando hay demasiados dispositivos del mismo tipo, no se puede garantizar la descomposición correcta dentro del tiempo efectivo. Por lo tanto, en los últimos cinco años, la dirección de la investigación se ha desplazado gradualmente hacia el uso de métodos de reconocimiento de patrones, incluido el uso de modelos de Markov ocultos y otros métodos mejorados para mejorar la precisión del reconocimiento a través de una gran cantidad de entrenamiento de datos reales.
En 2012 y 2014, se llevaron a cabo dos conferencias académicas temáticas NILM, y la tercera conferencia se llevará a cabo en Canadá en mayo de 2016.
Los autores de los algoritmos como Zico Kolter, Oliver Parson, etc. son los principales investigadores en la dirección de investigación actual, y se deben básicamente a la investigación en la dirección NILM En los últimos años, el doctorado obtenido y el contenido del algoritmo se describen con detalle en la gran tesis del autor del programa.
Los métodos de investigación de estos investigadores tienen una cosa en común, es decir, antes de que se desarrolle el algoritmo, se debe establecer una base de datos de carga recopilada real. Para la introducción de la base de datos relacionada, consulte el blog de Oliver Parson.
A través de estas bases de datos públicas, otros investigadores pueden comparar sus nuevos algoritmos con los algoritmos actualmente reconocidos y convertirse en ejemplos de cálculo estándar
Aunque el concepto de NILM se ha propuesto durante casi 30 años, con el auge de la ciencia de datos, ha resurgido su valor práctico en los últimos años, y los métodos de investigación se han vuelto más complejos y diversos. La extracción de características es solo uno de los enlaces, y los algoritmos básicos son casi todos ellos han sido tratado (por ejemplo, los estudiantes graduados de un maestro chino probaron los algoritmos clásicos en el aprendizaje de máquinas manuales , tales como método de difundir la Red , de vectores de soporte máquinas, modelos de Markov, Random Forests, etc.,
Es esencial utilizar datos del mundo real al comparar el rendimiento de las técnicas NIALM. Sin embargo, estos conjuntos de datos requieren mucho tiempo, son costosos y, a menudo, son incómodos de recopilar. Con este fin, los investigadores han comenzado a publicar sus conjuntos de datos, lo que permite a otros investigadores comparar sus enfoques con puntos de referencia comunes.
Stephen Makonin lanzó la primera versión del conjunto de datos Almanac of Minutely Power . El conjunto de datos contiene lecturas de medidor agregadas de 1 minuto, así como lecturas submedidas de 19 circuitos individuales. Cada lectura incluye medidas de voltaje, corriente, frecuencia, factor de potencia, potencia real, potencia reactiva y potencia aparente. Además, el consumo total de gas y agua también se midió a intervalos de 1 minuto, además de 1 uso individual para cada servicio. El conjunto de datos abarca un año completo desde abril de 2012 hasta marzo de 2013 de un solo hogar en el área metropolitana de Vancouver, BC, Canadá.
El conjunto de datos está disponible para cualquier persona de forma gratuita, aunque los autores requieren que se solicite un nombre de usuario y una contraseña para realizar un seguimiento del uso.
La Universidad de California, Berkley, ha publicado datos de electricidad recopilados del Cory Hall en el campus de UC Berkeley. El conjunto de datos contiene datos recopilados de 4 categorías de cargas submedidas: iluminación, HVAC, receptáculo (enchufes) y otros, para los cuales hay muchas fuentes disponibles para cada categoría de carga.
El conjunto de datos contiene mediciones de potencia activa, reactiva y aparente que se recopilaron a intervalos de 20 segundos. Los datos están disponibles de forma gratuita a través del sitio web de Mehdi Maasoumy , y un documento que describe brevemente el conjunto de datos apareció en el taller Big Learning en NIPS 2013 .
Thomas Kriechbaumer y Hans-Arno Jacobsen de la Universidad Técnica de Munich (TUM) lanzaron recientemente el conjunto de datos BLOND, que contiene lecturas de voltaje y corriente para circuitos agregados y datos de verdad de tierra totalmente etiquetados (mediciones de aparatos individuales). El estudio cubre 53 aparatos (16 clases) en una red eléctrica trifásica en Alemania.
Los autores han publicado dos versiones del conjunto de datos: 1) BLOND-50 contiene 213 días de mediciones muestreadas a 50 kHz (agregado) y 6.4 kHz (aparatos individuales), 2) BLOND-250 consta de la misma configuración: 50 días, 250 kHz (agregado), 50 kHz (aparatos individuales). El conjunto de datos también se describe con más detalle en el artículo de Datos científicos .
El conjunto de datos BLUED contiene datos a nivel de hogar de alta frecuencia (12 kHz) de un solo hogar de EE. UU. Durante un período de aproximadamente 8 días. El conjunto de datos también contiene una lista de eventos de cada vez que un electrodoméstico dentro del hogar cambia de estado (por ejemplo, se enciende el microondas).
Este conjunto de datos se recopiló principalmente para la evaluación de métodos NIALM basados en eventos. Los autores también tienen acceso protegido con contraseña al conjunto de datos para realizar un seguimiento de su uso.
El conjunto de datos COOLL fue publicado por investigadores del laboratorio PRISME de la Universidad de Orleans, que contiene alta frecuencia de 12 tipos diferentes de aparatos. De manera similar a los conjuntos de datos de tracebase y PLAID, se midieron varias instancias de cada tipo, y cada instancia se midió a lo largo de 20 operaciones. Durante cada operación controlada, se recopilaron datos de corriente y voltaje a una frecuencia de muestreo de 100 kHz. El conjunto de datos se resume en un artículo académico y se puede descargar de github después de completar un formulario de registro.
Pecan Street Inc ha publicado una gran cantidad de datos de electricidad doméstica a través de la iniciativa Dataport.Al momento de escribir este artículo, los datos contienen datos de 669 hogares, en los que tanto la demanda de energía agregada de los hogares como las demandas de energía de los electrodomésticos individuales se monitorean en intervalos de 1 minuto. Las instalaciones comenzaron en enero de 2011 y todavía se están recopilando datos para la mayoría de los edificios.
Los datos están disponibles gratuitamente para los miembros de la Universidad de la comunidad WikiEnergy, y los detalles completos para el acceso a la base de datos se pueden encontrar en la página de inicio de Dataport .
Marc Wenninger, Andreas Maier y Jochen Schmidt han lanzado DEDDIAG , un conjunto de datos de demanda de electricidad doméstica de electrodomésticos individuales en Alemania. El conjunto de datos contiene grabaciones de 15 hogares durante un período de hasta 3,5 años, en los que se han registrado 50 aparatos a una frecuencia de 1 Hz. El conjunto de datos se centra en electrodomésticos de importancia para fines de cambio de carga, como lavavajillas, lavadoras y refrigeradores. Una casa también incluye lecturas de red trifásica que se pueden utilizar para tareas de desagregación.
La Universidad Tecnológica de Delft (TUDelft) ha publicado un conjunto de datos DRED, que contiene información sobre el consumo de energía tanto a nivel de la casa como del electrodoméstico. El despliegue en vivo consta de varios sensores que miden la electricidad, la ocupación de los ocupantes y los parámetros ambientales en un hogar.
El conjunto de datos DRED incluye datos de electricidad (consumo de energía agregado y consumo de energía a nivel del aparato), información ambiental (temperatura interior a nivel de la habitación, temperatura exterior, parámetros ambientales), información de ocupación (información de ubicación de los ocupantes a nivel de la habitación, información de WiFi y BT RSSI para localización) e información del hogar (diseño de la casa, número de electrodomésticos monitoreados, mapeo de ubicación de electrodomésticos, etc.).
El conjunto de datos está disponible públicamente y se puede obtener en el sitio web de DRED..
El conjunto de datos ECO es un conjunto de datos para el monitoreo de carga no intrusivo y la investigación de detección de ocupación. Se recogió en 6 hogares suizos durante un período de 8 meses. Para cada uno de los hogares, el conjunto de datos ECO proporciona datos de consumo agregado de 1 Hz (corriente, voltaje y cambio de fase para cada una de las tres fases en el hogar) y también datos de nivel de enchufe de 1 Hz medidos de electrodomésticos seleccionados.
Además, el conjunto de datos también incluye información de ocupación medida a través de una tableta (etiquetado manual) y un sensor de infrarrojos pasivo (en algunos hogares).
El conjunto de datos se describe en detalle en un artículo publicado en BuildSys 2014.
El conjunto de datos contiene mediciones de potencia activa tomadas a intervalos de 1 segundo de 9 electrodomésticos individuales y la demanda de energía total de los hogares de 9 casas en Italia y Austria, durante un período de hasta un año. Se pueden encontrar más detalles en el documento arXiv adjunto .
Además, también está disponible un convertidor NILMTK para el conjunto de datos.
Como parte de este estudio, se monitorearon 251 hogares ocupantes de propietarios en Inglaterra entre abril de 2010 y abril de 2011. De estos hogares, 26 fueron monitoreados durante 12 meses y 225 durante 1 mes. Para cada hogar, se controló el consumo de energía de 13-51 electrodomésticos a intervalos de 2 minutos.
Actualmente se está desarrollando un portal de software para proporcionar acceso al conjunto de datos, aunque mientras tanto, los datos pueden solicitarse individualmente a ICF International contactando [email protected] y proporcionando una dirección postal y detalles del sistema operativo.
Publicado por investigadores de la Universidad de Edimburgo, el conjunto de datos de energía del hogar IDEAL comprende datos de 255 hogares del Reino Unido. Junto con los datos de electricidad y gas de cada hogar, el corpus contiene lecturas individuales de temperatura y humedad de la habitación y lecturas de temperatura de la caldera. Para 39 de los 255 hogares, se dispone de datos más detallados, incluidos datos sobre el uso de aparatos eléctricos individuales y datos sobre radiadores individuales.
Los datos de los sensores se incrementan con datos de encuestas anonimizados y metadatos, incluidos los datos demográficos de los ocupantes, la conciencia y las actitudes energéticas autoinformadas, y las características del edificio, la habitación y los electrodomésticos.
El Instituto Indraprastha de Tecnología de la Información publicó recientemente el conjunto de datos iAWE , que contiene datos agregados y submedidos de electricidad y gas de 33 sensores domésticos con una resolución de 1 segundo.
El conjunto de datos cubre 73 días de una sola casa en Delhi, India. Cada canal individual de datos se puede descargar por separado en formato SQL o CSV desde la sección de descarga en la parte inferior de la página web.
EDF Energy publicó un conjunto de datos en 2012 que contiene mediciones de energía realizadas en un solo hogar en Francia durante 4 años. Las mediciones promedio están disponibles a una resolución de 1 minuto de la potencia activa, la potencia reactiva, la tensión y la corriente agregadas del hogar, así como la potencia activa de 3 circuitos submedidos.
Aunque cada circuito contiene algunos aparatos, este es el conjunto de datos más grande en términos de duración de la medición.
Pecan Street Research Institute anunció el lanzamiento de un nuevo conjunto de datos diseñado específicamente para permitir la evaluación de la tecnología de desagregación de electricidad. Un conjunto de datos de muestra gratuito está disponible para los miembros de su consorcio de investigación, que ahora se ha abierto a los investigadores universitarios. El conjunto de datos de muestra contiene 7 días de datos de 10 casas en Austin, TX, EE. UU., Para los cuales también se encuentran disponibles datos agregados y de circuito que contienen lecturas de potencia en intervalos de 1 minuto. Además de las cargas domésticas comunes, 2 de las casas también tienen sistemas fotovoltaicos y 1 casa también tiene un vehículo eléctrico.
REDD contiene datos tanto a nivel de hogar como a nivel de circuito de 6 hogares de EE. UU., Durante varias duraciones (entre unas pocas semanas y unos meses). Cada casa tiene una entrada de red bifásica y de 10 a 25 circuitos monitoreados individualmente.
Los datos de corriente y voltaje de alta frecuencia (kHz) están disponibles para ambos circuitos de red, mientras que las mediciones de potencia de baja frecuencia (intervalos de 3-4 segundos) están disponibles para los circuitos del aparato.
Este conjunto de datos se recopiló principalmente para la evaluación de métodos NIALM no basados en eventos. Los autores tienen acceso protegido con contraseña al conjunto de datos para realizar un seguimiento de su uso.
El conjunto de datos REFIT fue publicado como parte del proyecto Smart Home and Energy Demand Reduction , por David Murray y Lina Stankovic. en la Universidad de Strathclyde. El conjunto de datos contiene mediciones de potencia activa del agregado y 9 aparatos individuales de 20 hogares en el área de Loughborough del Reino Unido, con una resolución de 1 muestra cada 8 segundos. Esto convierte al REFIT en el único conjunto de datos del Reino Unido que contiene datos a nivel de electrodomésticos a una frecuencia de muestreo superior a una vez por minuto.
Además, los datos agregados de consumo de gas también se registraron a intervalos de 30 minutos. Sin embargo, debe tenerse en cuenta que los datos se comprimieron al eliminar muestras para las que la demanda de energía no había cambiado desde la última lectura.
Aunque no se recopila específicamente para el desglose de energía, el conjunto de datos Smart * (Smart Star) proporciona datos de energía de 3 hogares reales submedidos. La granularidad de los datos recopilados para los monitores de nivel de circuito (conjunto de instalaciones y circuitos individuales) es de una lectura por segundo, mientras que las cargas de los enchufes individuales se miden aproximadamente cada pocos segundos. Cada casa contiene de 21 a 26 medidores de circuito y casi todos los electrodomésticos se miden con medidores de enchufe. Por el momento, los datos agregados, de circuitos y de electrodomésticos están disponibles para la casa A, pero solo los datos agregados están disponibles para las casas B y C.
El repositorio de tracebase contiene datos de dispositivos individuales con la intención de crear una base de datos para entrenar algoritmos NIALM. El repositorio contiene un total de 1883 días de lecturas de energía, tomadas a intervalos de 1 segundo, para 158 instancias de dispositivos, de 43 tipos de dispositivos diferentes.
Dado que el objetivo es crear una base de datos de dispositivos, no se recopilan medidas agregadas. Los datos se introducen en Reinhardt et al. 2012 y está disponible en el repositorio de tracebase .
Los archivos están protegidos con contraseña, pero se puede solicitar una contraseña a través de la página de descarga .
Jack Kelly lanzó la primera versión de UK-DALE en enero de 2015. El conjunto de datos contiene lecturas de medidores agregados de voltaje y corriente de 16 kHz y datos de energía submedidos de 6 segundos de electrodomésticos individuales en 3 hogares del Reino Unido, así como un agregado de 1 segundo y Datos de potencia submedidos de 6 segundos para 2 hogares adicionales. En agosto de 2015 se publicó una actualización del conjunto de datos que amplió los datos disponibles para la casa 1 a 2,5 años
Los datos de baja frecuencia están disponibles para descargar en formato CSV o NILMTK HDF5, mientras que los datos de alta frecuencia se pueden descargar en formato de archivo FLAC.
Con el paso de los años, es muy frecuente que el sonido del radio-cd del smart for two empiece a dar multiples problemas (chasquidos, ruidos extraños, poca fidelidad , zumbidos,etc. ) , por lo que si queremos identificar el problema, debemos dilucidar si el problema es por el propio radio-cd o es por los propios altavoces.
Para poder determinar la causa de un sonido malo antes de cambiar los altavoces directamente en primer lugar deberemos decidir si la causa es el propio radio cd por lo que debemos proceder a sacarlo de su encastre para probarlo externamente con otros altavoces que sepamos que no tienen problemas.
Actualmente casi todos los autorradios traen un conector estándar ISO 10487 (International Organization for Standardization). La radio cd del Smart for two , no es una excepción por lo que en primer lugar deberemos sacarla del encastre , para lo cual, primero quitaremos con cuidado la botonera inferior que va a presión ( donde va el interruptor de las luces de emergencia) y quitaremos el tornillo central inferior de la radio(torx de 25). Acto seguido quitaremos el embellecedor superior ( va a a presión por lo que nos podemos ayudar de desmontadores de plástico). Finalmente quitaremos los cuatro tornillos torx de 25 de ambos lados y ya podremos sacar el radio cd, que no es es ni mas ni menos que una radio cd en formato 2 din
Si damos la vuelta al autoradio veremos tres conectores : dos de 8 pines y uno en la parte superior de 20 pines divida en tres secciones.
El cuerpo A se utiliza para la alimentación, el B para los altavoces y el C para diferentes dispositivos externos asociados al autorradio.
Algunos autorradios más avanzados pueden traer el cuerpo D, que se utiliza para la conexión de sistemas de navegación GPS. En este caso el Smart en modelos superiores a 2010 , la radio-CD si que cuenta con este aunque no este conectado nada .
Estos son las descripciones del Conector A (Alimentación):
Pin 1. SVC(Speed Controlled Volume) – rojo/amarillo : Entrada de señal de velocidad del vehículo para controlar el volumen. La señal se toma del sistema de control de crucero o del sensor de velocidad del vehículo.
Pin 2. Silenciado (mute) – marrón: Elimina el sonido al poner este terminal a masa. Se conecta al manos libres
Pin 3. NC (no conectado): Algunos fabricantes lo utilizan para funciones extra.
Pin 4. Entrada 12V permanentes – amarillo: Conexión directa, a través de fusible, a la batería para mantener los ajustes de la memoria del autorradio
Pin 5. Salida 12V (150 mA máx) conmutados (remote) – azul o azul/blanco: Cuando se enciende el autorradio, alimenta la antena electrónica o activa el relé de alimentación de la etapa de potencia.
Pin 6. Entrada 12V de iluminación – naranja/blanco o amarillo/negro: Para iluminar la pantalla al encender las luces del vehículo
Pin 7. Entrada 12V conmutados – rojo: Alimentación tomada después de la llave de contacto.
Pin 8. Masa – negro o marrón: Se conecta al negativo de la batería (chasis del vehículo).
NOTAS:
Los pines 1 y 3 pueden estar intercambiados en algunas marcas de vehículos
Los pines 4 y 7 pueden estar intercambiados en algunas marcas de vehículos
Algunos vehículos Volkswagen usan el pin 5 como 12 V permanentes (pin 4), por lo que hay que hacer la modificación para conectarlo al pin 4 del autorradio
Estos son las descripciones del Conector B (Altavoces)
Pin 1. – azul : trasero derecho ( + )
Pin 2. – azul/negro: trasero derecho ( – )
Pin 3. – gris: delantero derecho ( + )
Pin 4. – gris/negro: delantero derecho( – )
Pin 5. – verde : delantero izquierdo ( + )
Pin 6. – verde/negro: delantero izquierdo ( – )
Pin 7. – marrón: trasero izquierdo ( + )
Pin 8. – marrón/negro: trasero izquierdo( – )
Figura 3: Altavoces en conector ISO B
ESTOS SON LAS DESCRIPCIONES DEL CONECTOR C1 ( SALIDAS A AMPLIFICADOR O ECUALIZADOR )
Pin 1. – salida de línea izquierda trasera
Pin 2. – salida de línea derecha trasera
Pin 3. – masa de salidas de línea
Pin 4. – salida de línea izquierda delantera
Pin 5. – salida de línea derecha delantera
Pin 6. – salida 12 V conmutados (máx. 150 mA)
ESTOS SON LAS DESCRIPCIONES DEL CONECTOR C2 ( CONTROL REMOTO )
Pin 7. – recepción de datos
Pin 8. – transmisión de datos
Pin 9. – masa (chasis)
Pin 10. – salida 12 V conmutados (máx. 150 mA)
Pin 11. – entrada de control remoto
Pin 12. – masa de entrada de control remoto
ESTOS SON LAS DESCRIPCIONES DEL CONECTOR C3 ( CARGADOR DE CD )
Pin 13. – entrada de datos del bus
Pin 14. – salida de datos del bus
Pin 15. – salida de 12 V permanentes hacia el cargador de CD
Pin 16. – salida de 12 V conmutados hacia el cargador de CD (máx. 300 mA)
Pin 17. – masa de la señal de datos
Pin 18. – masa de la señal de audio de cargador de CD
Pin 19. – entrada de línea izquierda del cargador de CD
Pin 20. – entrada de línea derecha del cargador de CD
Una vez que saquemos la radio-cd podemos alimentarla externamente a través del pin4 (+12V) y pin 8 ( GND) para comprobar que arranca el aparato.
Ahora podemos conectar dos altavoces de buena calidad en el conector B
Si el sonido es malo , ya sabemos que el problema es del propio radio cd, por lo que podemos plantearnos en sustituir el radio cd por otro por ejemplo mas avanzado que sea de formato 2DIN.
Añadiendo un receptor bluetooth
Si hemos desmontado el Radio-cd , y este funciona correctamente un modo interesante de añadirle mucha funcionalidad es conectarle un receptor bluetooth, lo cual lo haremos a través de la sección C1
– Plug & Play – Bluetooth: 5.0 – Rango: 5 ~ 10 m – Nombre de Bluetooth: Jierui-BT 5908 – Función a través de dispositivos habilitados para Bluetooth – No hay limitaciones funcionales de la radio del automóvil. – Le permite conectar una fuente de audio externa y combine su teléfono con nuestro módulo Bluetooth y elija AUX desde su radio. – Puede disfrutar de la música de tu teléfono a través de los altavoces del automóvil.
La versión Bluetooth 5.0, también es compatible con 3.0 /2.0, se ajusta a WMA, WAV, FLAC. Esta version Adecuado para Smart Fortwo 450, CrossBlade y Smart Roadster.
Inserte este elemento en la radio posterior y luego conecte el cable rojo a 12V +, el cable negro al suelo.
Haga coincidir su teléfono o almohadilla al módulo Bluetooth y elija AUX desde su radio, puede usar su teléfono para reproducir música a través de los altavoces del automóvil.
Solución casera económica
No todos los conectores , por muy extraño que podemos imaginar pueden ajustarse al conector C del Smart, por lo en muchos casos, lo mas sencillo es conectar directamente soldados los tres cables de audio al conector c. Para hacer mas sencilla la soldadura, dado que el conector esta bastante hundido, una labor que nos puede ayudar es usar cables rígidos enrollados sobre los terminales del conector y luego para que no se suelte con las vibraciones , usar varios puntos de soldadura
Una vez soldados los tres cables rígidos ( recuerde que el centro es la masa), lo ideal es unirlos a un cable coaxial estéreo para evitar acoples . Obviamente podemos usar cables reciclados por ejemplo de unos viejos auriculares con un jack de 3 1/2″.
Podemos conectar el jack de 3 1/2″ a cualquier fuente de audio ( por ejemplo un smartphone) ,pero dado su precio y características podemos usar un trasmisor bluetooth con salida de audio y un extensor en cuello de cisne para salvar la distancia desde el conector del mechero hacia la consola central del Smart,
Obviamente conectaremos el Jack de audio a la salida Aux del receptor bluetooth y por supuesto conectaremos dicho receptor al enchufe del encendedor del Smart. Este transmisor FM Bluetooth tiene 3 puertos de carga: Un puerto de carga PD USB-C (tipo C) de 18 W emite 5V/3A, 9V/2A, 12V/1.5A máx. capaz de cargar dispositivos compatibles al 50% en solo 30 minutos; Un puerto USB de 5V/2.4A de carga común; Y en la parte superior, hay un puerto de unidad USB que también se puede utilizar como puerto de carga. La carga mientras escuchan música.
El modelo Goigrn usa tecnología de cancelación de ruido CVC, el ruido y el eco, se reducirá eficazmente; El chip Bluetooth 5.0 avanzado garantizará siempre una estable conexión y una rápida transmisión. Este transmisor Bluetooth coche le brindará siempre llamadas de manera muy nítida y una transmisión de la música en alta fidelidad mientras conduce. Este receptor tiene una «gran» pantalla LCD de 2.0, en la que se mostrará la frecuencia FM( aunque esto no nos va a servir ya que lo conectaremos por el conector de audio) , y también podrá ver el nivel del voltaje de la batería de su automóvil. Simplemente presionado el botón “CH” 3S para apagar el transmisor, no tendrá que enchufar o desenchufarlo cada vez que encienda, o y apague su automóvil. (Nota: los puertos de carga funcionarán incluso estando apagado)
Por cierto ,podemos usar ASISTENTE DE VOZ y además solo tendrá que presionar el botón de llamada para responder/volver a marcar/colgar/rechazar llamadas; Podrá cambiar sin problemas entre llamadas entrantes y música. Usar Siri/Google asistente su teléfono para hacer llamadas telefónicas, obtener indicaciones para conducir.
Y para terminar , este receptor tiene un diseño que iluminará el interior de su coche de manera muy moderna, e innovadora, y que cumplirá con sus todas sus expectativas ya que tiene 9 bonitos colores diferentes de iluminación, gracias a esta luz, podrá encontrar los botones con mayor precisión y rapidez en la oscuridad, por lo que siempre conducción segura estará garantizado. (Nota: si usted lo prefiere, podrá apagar la luz)
Por cierto , si le interesa este receptor por unos 15€ podemos conseguirlo en Amazon.
Cambio de altavoces
En caso de que el sonido sea correcto , es evidente que el problema es de envejecimiento de los propios altavoces , por lo podemos volver a colocar el radio cd en el coche y sustituir los altavoces por otros de mejor calidad.
Un ejemplo de altavoz cumple estas características;
Coaxial de 2 vías con pico 300 W/potencia RMS de 30 W
Respuesta de frecuencia: 35 – 22.000 Hz
Tweeter compensado de poliéster imídico
Imán de ferrita para woofer y imán de neodimio tweeter
Unos altavoces compatibles con el orificio con las especificaciones anteriores y que incluye la rejillas, y de muy buena calidad , pueden ser los altavoces de la marca JVC modelo CD-J620, altavoces de 2 vías de 16cm.
Es cierto que para desmontar los viejos altavoces originales , lo correcto seria desmontar la puerta al completo, pero afortunadamente hay una manera fácil de hacerlo sin desmontar nada sacando el altavoz averiado por la parte delantera como podemos ver en el siguiente video
HDF5 es un formato de datos jerárquico que se usar en el NILMTK como fuente datos basado en HDF4 y NetCDF (otros dos formatos de datos jerárquicos).El formato de datos jerárquico, versión 5 (HDF5), es un formato de archivo de código abierto que admite datos grandes, complejos y heterogéneos. HDF5 utiliza una estructura similar a un «directorio de archivos» que le permite organizar los datos dentro del archivo de muchas formas estructuradas diferentes, como lo haría con los archivos en su computadora. El formato HDF5 también permite la incrustación de metadatos, lo que lo hace autodescriptivo .
El formato de archivo HDF5 es desarrollado por The HDF Group. Es un formato de archivo binario abierto con buen soporte en varios lenguajes de programación, incluido Python. En principio, podría usar cualquier lenguaje para crear su convertidor de conjuntos de datos, pero recomendamos el lenguaje Python y no hemos intentado escribir convertidores en otro idioma. Trabajar con archivos HDF5 es realmente fácil en Python usando Pandas (que, a su vez, usa el excelente paquete PyTables ).
Estructura jerárquica: un directorio de archivos dentro de un archivo
El formato HDF5 se puede considerar como un sistema de archivos contenido y descrito en un solo archivo. Piense en los archivos y carpetas almacenados en su computadora. Es posible que tenga un directorio de datos con algunos datos de temperatura para varios sitios de campo. Estos datos de temperatura se recopilan cada minuto y se resumen cada hora, día y semana. Dentro de un archivo HDF5, puede almacenar un conjunto de datos similar organizado de la misma manera que podría organizar archivos y carpetas en su computadora. Sin embargo, en un archivo HDF5, lo que llamamos «directorios» o «carpetas» en nuestras computadoras, se llaman groupsy lo que llamamos archivos en nuestra computadora datasets.
2 Términos importantes de HDF5
Grupo: un elemento similar a una carpeta dentro de un archivo HDF5 que puede contener otros grupos O conjuntos de datos dentro de él.
Conjunto de datos: los datos reales contenidos en el archivo HDF5. Los conjuntos de datos se almacenan a menudo (pero no es necesario) dentro de grupos en el archivo.
Un ejemplo de estructura de archivo HDF5 que contiene grupos, conjuntos de datos y metadatos asociados.
Un archivo HDF5 que contiene conjuntos de datos podría estructurarse así:
Un ejemplo de estructura de archivo HDF5 que contiene datos para varios sitios de campo y también contiene varios conjuntos de datos (promediados en diferentes intervalos de tiempo).
HDF5 es un formato autodescriptivo
El formato HDF5 es autodescriptivo. Esto significa que cada archivo, grupo y conjunto de datos puede tener metadatos asociados que describen exactamente cuáles son los datos. Siguiendo el ejemplo anterior, podemos incrustar información sobre cada sitio en el archivo, como por ejemplo:
El nombre completo y la ubicación X, Y del sitio.
Descripción del sitio.
Cualquier documentación de interés.
De manera similar, podríamos agregar información sobre cómo se recopilaron los datos en el conjunto de datos, como descripciones del sensor utilizado para recopilar los datos de temperatura. También podemos adjuntar información, a cada conjunto de datos dentro del grupo de sitios, sobre cómo se realizó el promedio y durante qué período de tiempo están disponibles los datos.
Un beneficio clave de tener metadatos adjuntos a cada archivo, grupo y conjunto de datos es que esto facilita la automatización sin la necesidad de un documento de metadatos separado (y adicional). Usando un lenguaje de programación, como R o Python, podemos obtener información de los metadatos que ya están asociados con el conjunto de datos y que podríamos necesitar para procesar el conjunto de datos.
Los archivos HDF5 son autodescriptivos, lo que significa que todos los elementos (el archivo en sí, los grupos y los conjuntos de datos) pueden tener metadatos asociados que describen la información contenida en el elemento.
Subconjunto comprimido y eficiente
El formato HDF5 es un formato comprimido. El tamaño de todos los datos contenidos en HDF5 está optimizado, lo que reduce el tamaño general del archivo. Sin embargo, incluso cuando están comprimidos, los archivos HDF5 a menudo contienen grandes volúmenes de datos y, por lo tanto, pueden ser bastante grandes. Un atributo poderoso de HDF5 es data slicingmediante el cual se puede extraer un subconjunto particular de un conjunto de datos para su procesamiento. Esto significa que no es necesario leer el conjunto de datos completo en la memoria (RAM); muy útil para permitirnos trabajar de manera más eficiente con conjuntos de datos muy grandes (gigabytes o más).
Almacenamiento de datos heterogéneos
Los archivos HDF5 pueden almacenar muchos tipos diferentes de datos dentro del mismo archivo. Por ejemplo, un grupo puede contener un conjunto de conjuntos de datos para contener datos enteros (numéricos) y de texto (cadenas). O bien, un conjunto de datos puede contener tipos de datos heterogéneos (por ejemplo, tanto texto como datos numéricos en un conjunto de datos). Esto significa que HDF5 puede almacenar cualquiera de los siguientes (y más) en un archivo:
Datos de temperatura, precipitación y PAR (radiación fotosintética activa) para un sitio o para muchos sitios
Un conjunto de imágenes que cubren una o más áreas (cada imagen puede tener asociada información espacial específica, todo en el mismo archivo)
Un conjunto de datos espaciales multi o hiperespectral que contiene cientos de bandas.
Datos de campo para varios sitios que caracterizan insectos, mamíferos, vegetación y clima.
Un conjunto de imágenes que cubren una o más áreas (cada imagen puede tener asociada información espacial única)
¡Y mucho más!
Formato abierto
El formato HDF5 es abierto y de uso gratuito. Las bibliotecas de apoyo (y un visor gratuito) se pueden descargar desde el sitio web de HDF Group . Como tal, HDF5 es ampliamente compatible con una gran cantidad de programas, incluidos lenguajes de programación de código abierto como R y Python, y herramientas de programación comerciales como Matlaby IDL. Los datos espaciales que se almacenan en formato HDF5 se pueden utilizar en los programas de SIG y de imagen que incluyen QGIS, ArcGISy ENVI.
Beneficios de HDF5
Autodescripción Los conjuntos de datos con un archivo HDF5 son autodescriptivos. Esto nos permite extraer metadatos de manera eficiente sin necesidad de un documento de metadatos adicional.
Admite datos heterogéneos : un archivo HDF5 puede contener diferentes tipos de conjuntos de datos.
Admite datos grandes y complejos : HDF5 es un formato comprimido que está diseñado para admitir conjuntos de datos grandes, heterogéneos y complejos.
Admite la división de datos: la «división de datos», o la extracción de partes del conjunto de datos según sea necesario para el análisis, significa que los archivos grandes no necesitan leerse por completo en la memoria o RAM de la computadora.
Formato abierto: soporte amplio en las muchas herramientas : debido a que el formato HDF5 es abierto, es compatible con una gran cantidad de lenguajes y herramientas de programación, incluidos lenguajes de código abierto como R y Pythonherramientas SIG abiertas como QGIS.E
Si desea contribuir con un nuevo convertidor de conjuntos de datos a H5 (o simplemente comprender mejor los convertidores existentes), probablemente la mejor manera de ponerse al día es leer este post pues vamos a ver el diseño de los datos en un archivo NILMTK HDF5. Asimismo se recomienda eche un vistazo al convertidor REDD para NILMTK (in nilmtk/nilmtk/dataset_converters/redd).
Los convertidores de conjuntos de datos NILMTK generan un archivo HDF5 que contiene tanto los datos de la serie temporal de cada medidor como todos los metadatos relevantes, veamos pues como crear uno nuevo.
Datos de series de tiempo
Los datos de cada medidor físico se almacenan en su propia tabla (es decir, existe una relación de uno a uno entre las tablas del archivo HDF5 y los medidores físicos).
Ubicación de la mesa (llaves)
Las tablas en HDF5 se identifican mediante una clave jerárquica. Cada clave es una cuerda. Los niveles de la jerarquía están separados por un /carácter en la clave. NILMTK usa claves en la forma /building<i>/elec/meter<j>donde iy json números enteros que comienzan desde 1. ies la instancia del edificio y jes la instancia del medidor. Por ejemplo, la tabla que almacena datos de la instancia 1 del medidor en la instancia 1 del edificio tendría la clave /building1/elec/meter1. (Usamos elecen la jerarquía para permitirnos, en el futuro, agregar soporte para otros tipos de sensores como medidores de agua y gas).
Contenido de cada tabla
Ilustración
poder
energía
Voltaje
activo
reactivo
2014-07-01T05: 00: 14 + 00: 00
0,1
0,01
231.1
2014-07-01T05: 00: 15 + 00: 00
100,5
10,5
232,1
Columna de índice
La columna de índice es una fecha y hora representada en el disco como una marca de tiempo UNIX de precisión de nanosegundos (!) Almacenada como un int de 64 bits sin firmar. En Python, usamos un archivo con reconocimiento de zona horaria numpy.datetime64. El marco de datos debe ordenarse en orden ascendente en la columna de índice (marca de tiempo).
Para evitar problemas más adelante, la columna de índice debe tener valores únicos. Si hay duplicados, el convertidor debe eliminar uno de los elementos o eliminar la ambigüedad si es posible.
Columnas de medida
Cada columna, excepto la columna de índice, contiene una medida tomada por el medidor. Estas medidas pueden ser demanda de potencia, energía, energía acumulada, voltaje o corriente. Cada medición se representa como un número de coma flotante de 32 bits.
Siempre usamos unidades SI o unidades derivadas del SI y NILMTK asume que no se ha aplicado ningún prefijo de unidad (por ejemplo, ‘kilo-‘ o ‘mega-‘). En otras palabras, NILMTK asume un multiplicador de unidad de 1. Por ejemplo, siempre usamos vatios (no kW) para la potencia activa. Si el conjunto de datos de origen usa, digamos, kW, multiplique estos valores por 1000 en su convertidor.
Etiquetas de columna
Las etiquetas de columna son jerárquicas con 2 niveles ( las etiquetas jerárquicas son muy bien compatibles con Pandas ). El nivel superior describe lo que se physical_quantityestá midiendo. El nivel de segundos describe el typeque, en la actualidad, se usa para las columnas de energía y potencia para describir si la medición de corriente alterna es apparent, activeo reactive. Usamos un vocabulario controlado para ambos physical_quanitityy type. Para los detalles completos de este vocabulario controlado, por favor consulte la documentación physical_quantityy typeen virtud de la measurementspropiedad para el objeto MeterDevice en NILM metadatos .
Compresión
Usamos zlibpara comprimir nuestros archivos HDF5. bzip2da como resultado archivos un poco más pequeños (261 MB bzip2frente a 273 MB zlibpara REDD) pero no parece ser compatible con HDFView .
Metadatos
Para que NILMTK pueda cargar el conjunto de datos, necesitamos agregar metadatos al archivo HDF5. NILMTK utiliza el esquema de metadatos de NILM .
Si el conjunto de datos ya está descrito en YAML usando el esquema de metadatos NILM, simplemente llame nilm_metadata.convert_yaml_to_hdf5().
Si el conjunto de datos aún no se describe mediante el esquema de metadatos de NILM, será necesario hacerlo. Si se trata de un conjunto de datos pequeño, puede escribir manualmente los archivos YAML y luego convertirlos a HDF5 (así es como funciona nuestro convertidor REDD). Si se trata de un conjunto de datos grande, sería mejor convertir mediante programación los propios metadatos del conjunto de datos en metadatos NILM y almacenar los metadatos directamente en el archivo HDF5.
Los metadatos NILM nos permiten describir muchos de los objetos que normalmente encontramos en un conjunto de datos de energía desagregado. A continuación se muestra un diagrama de clases UML que muestra todas las clases y las relaciones entre clases:
Un diamante negro oscuro indica una relación de «composición», mientras que un diamante hueco indica una «agregación». Por ejemplo, la relación entre Datasety Buildingse lee como ‘ cada conjunto de datos contiene cualquier número de edificios y cada edificio pertenece exactamente a un conjunto de datos ‘. Usamos diamantes huecos para indicar que los objetos de una clase se refieren a objetos de otra clase. Por ejemplo, cada Applianceobjeto se refiere exactamente a uno ApplianceType. Las instancias de las clases en el área sombreada de la izquierda están diseñadas para enviarse con cada conjunto de datos, mientras que los objetos de las clases de la derecha son comunes a todos los conjuntos de datos y se almacenan dentro del proyecto de metadatos NILM como los ‘metadatos centrales’. Algunos ApplianceTypescontienen Appliances, de ahí el cuadro que representa elAppliance class sobresale ligeramente en el área de ‘metadatos centrales’ a la derecha.
A continuación, usaremos ejemplos para ilustrar cómo crear un esquema de metadatos para un conjunto de datos.
Ejemplo simple
La siguiente ilustración muestra un diagrama de cableado de red de dibujos animados para un edificio doméstico. Las líneas negras indican cables de red. Esta casa tiene un suministro de red de fase dividida (común en América del Norte, por ejemplo). La lavadora extrae energía a través de ambas divisiones. Todos los demás electrodomésticos obtienen energía de una sola división.
El texto a continuación muestra una descripción minimalista (utilizando el esquema de metadatos NILM) del diagrama de cableado anterior. El YAML a continuación entraría en el archivo building1.yaml:
instancia : 1 # este es el primer edificio en el conjunto de datos
elec_meters : # un diccionario donde cada clave es un medidor instancia
1 :
site_meter : true # meter 1 mide el agregado de todo el edificio
2 :
site_meter : true
3 :
submeter_of : 1 # meter 3 está directamente aguas abajo del medidor 1
4 :
submeter_of : 1
5 :
submeter_of : 2
6 :
submeter_of : 2
7 :
submeter_of: 6
electrodomésticos :
- { tipo : hervidor , instancia : 1 , sala : cocina , medidores : [ 3 ]}
- { tipo : lavadora , instancia : 1 , medidores : [ 4 , 5 ]}
- { tipo : luz , instancia : 1 , sala : cocina , metros : [ 7 ]}
- { tipo : luz , instancia : 2 , múltiple : verdadero , metros : [ 6 ]}
elec_meterscontiene un diccionario de diccionarios. Cada clave es una instancia de medidor (un identificador entero único dentro del edificio). Comenzamos a numerar desde 1 porque eso es común en los conjuntos de datos existentes. Cada valor del elec_metersdict es un diccionario que registra información sobre ese medidor específico (consulte la documentación sobre el esquema de ElecMeter para obtener información completa). site_meterse establece en truesi este medidor mide la demanda de energía agregada de todo el edificio. submeter_ofregistra la instancia de medidor del medidor aguas arriba. De esta forma, podemos especificar jerarquías de cableado de complejidad arbitraria.
applianceses una lista de diccionarios. Cada diccionario describe un solo dispositivo. El aparato type(por ejemplo, «hervidor» o «lavadora») se toma de un vocabulario controlado definido en los metadatos de NILM. Consulte el esquema del dispositivo para obtener más información.
Para cada aparato, también debemos especificar un instance(un número entero que, dentro de cada edificio, nos permite distinguir entre múltiples instancias de un aparato en particular type). También debemos especificar una lista de meters. Cada elemento de esta lista es un número entero que corresponde a un metro instance. De esta manera, podemos especificar qué medidor está directamente aguas arriba de este aparato. La gran mayoría de los electrodomésticos solo especificará un medidor. Usamos dos metros para los electrodomésticos norteamericanos que obtienen energía de ambas conexiones de red. Usamos tres metros para electrodomésticos trifásicos.
Representar a REDD utilizando metadatos de NILM
El conjunto de datos de referencia de desagregación de energía (REDD) ( Kolter & Johnson 2011 ) fue el primer conjunto de datos públicos que se publicó para la comunidad de desagregación de energía. Consta de seis viviendas. Se mide la demanda de energía agregada de cada hogar y también se miden sus circuitos. REDD proporciona datos de baja frecuencia (período de muestreo de 3 segundos) y de alta frecuencia. Solo especificaremos los datos de baja frecuencia en este ejemplo.
Los metadatos NILM se pueden especificar como YAML o como metadatos dentro de un archivo binario HDF5. YAML probablemente sea mejor para la distribución con un conjunto de datos. NILMTK utiliza HDF5 para almacenar tanto los datos como los metadatos. Las estructuras de datos son muy similares sin importar si los metadatos están representados en el disco como YAML o HDF5. La principal diferencia es dónde se almacenan los metadatos. En este ejemplo, solo consideraremos YAML. Los archivos YAML se almacenan en un metadatadirectorio incluido con el conjunto de datos. Para obtener detalles sobre dónde se almacena esta información dentro de HDF5, consulte las secciones relevantes de la página de metadatos del conjunto de datos .
Primero especificaremos los detalles del conjunto de datos, luego los detalles sobre cada edificio.
Conjunto de datos
Usaremos el esquema del conjunto de datos para describir el nombre del conjunto de datos, los autores, la ubicación geográfica, etc. Si desea crear una descripción mínima de metadatos de un conjunto de datos, no necesita especificar nada para el Dataset.
Esta información se almacenaría en formato dataset.yaml.
Primero, especifiquemos el nombre del conjunto de datos y los creadores:
name : REDD
long_name : The Reference Energy
Disaggregation Creadores del conjunto de datos :
- Kolter, Zico
- Johnson, Matthew
publicación_fecha : 2011
institución : Massachusetts Institute of Technology (MIT)
contacto : [email protected] # Zico se trasladó de MIT a CMU
descripción : Varias semanas de datos de energía para 6 hogares diferentes.
Asunto : Demanda de energía desagregada de los edificios domésticos.
number_of_buildings : 6
zona horaria : EE . UU. / Este # MIT está en la costa este
geo_location :
localidad : Massachusetts # aldea, pueblo, ciudad o estado
país : EE .
UU . # Código de país estándar de dos letras definido por ISO 3166-1 alpha-2 latitud : 42.360091 #
Coorindates del MIT longitud : -71.09416
related_documents :
- http://redd.csail.mit.edu
- >
J. Zico Kolter y Matthew J. Johnson.
REDD: un conjunto de datos públicos para la investigación de desagregación de energía.
En actas del taller SustKDD sobre
aplicaciones de minería de datos en sostenibilidad, 2011.
La tensión nominal de la red se puede deducir del geo_location:countryvalor.
Dispositivos de medición
A continuación, describimos las características comunes de cada tipo de medidor utilizado para registrar los datos. Consulte la sección de documentación sobre MeterDevice para obtener detalles completos. Puede pensar en esto como la ‘hoja de especificaciones’ suministrada con cada modelo de medidor utilizado para registrar el conjunto de datos. Esta información se almacenaría en formato meter_devices.yaml.
Esta estructura de datos es un gran diccionario. Cada clave es un nombre de modelo. Cada valor es un diccionario que describe el medidor:
eMonitor :
modelo : eMonitor
fabricante : Powerhouse Dynamics
fabricante_url : http://powerhousedynamics.com
descripción : >
Mide la demanda de potencia a nivel de circuito. Viene con 24 CT.
Esta página de preguntas frecuentes sugiere que el eMonitor mide la
potencia
real (activa) : http://www.energycircle.com/node/14103 aunque el readme.txt de
REDD dice que todos los canales registran la potencia aparente. sample_period : 3 # el intervalo entre muestras. En segundos.
max_sample_period : 50 # Intervalo máximo permitido entre muestras. Segundos.
medidas :
- physical_quantity : el poder # potencia, la tensión, la energía, la corriente?
tipo : activo # activo (potencia real), reactivo o aparente?
Upper_limit : 5000
lower_limit : 0
inalámbrico : falso
REDD_whole_house :
description : >
Medidor de potencia de bricolaje de REDD que se utiliza para medir formas
de
onda de CA en toda la casa a alta frecuencia. Para citar su artículo: "TC de TED (http://www.theenergydetective.com) para medir la corriente en la
red eléctrica, una sonda de osciloscopio Pico TA041
(http://www.picotechnologies.com) para medir el voltaje de una de
las dos fases en el hogar, y un
conversor analógico a digital
NI-9239 de National Instruments para transformar ambas señales
analógicas en lecturas digitales.Este conversor A / D tiene una resolución de
24 bits con ruido de aproximadamente 70 µV, que determina el nivel de ruido de nuestras lecturas de corriente y voltaje: los TED CTs
están clasificados para circuitos de 200 amperios y un máximo de 3 voltios, por lo que podemos
diferenciar entre corrientes de aproximadamente
((200)) (70 × 10−6) / (3) = 4,66 mA, correspondientes a cambios
de
potencia de aproximadamente 0,5 vatios. Del mismo modo, puesto que utilizamos un 1: 100 de tensión de escalón de descenso en la sonda del osciloscopio, podemos detectar tensión
diferencias de unos 7mV ".
Sample_period : 1
max_sample_period : 30
mediciones :
- physical_quantity : potencia
tipo : aparente
UPPER_LIMIT : 50000
LOWER_LIMIT : 0
inalámbrica : falsa
Edificios, contadores de electricidad y electrodomésticos
Finalmente, necesitamos especificar metadatos para cada edificio en el conjunto de datos. La información sobre cada contador de electricidad y cada aparato se especifica junto con el edificio. Los metadatos de cada edificio entran donde i es un número entero que comienza en 1. Por ejemplo,building<i>.yamlbuilding1.yaml
Describiremos house_1desde REDD. Primero, describimos la información básica sobre el house_1uso del esquema de construcción :
instancia : 1 # este es el primer edificio en el conjunto de datos
original_name : house_1 # nombre original del conjunto de datos REDD
elec_meters : # ver abajo
aparatos : # ver abajo
Ahora sabemos la ubicación geográfica específica de house_1en REDD. Como tal, podemos asumir que house_1solo ‘heredará’ geo_locationy timezonede los datasetmetadatos. Si supiéramos la ubicación geográfica de house_1entonces podríamos especificarlo en building1.yaml.
A continuación, especificamos cada contador de electricidad y el cableado entre los contadores utilizando el esquema ElecMeter . elec_meterses un diccionario. Cada clave es una instancia de medidor. Cada valor es un diccionario que describe ese medidor. Para ser breve, no mostraremos todos los medidores:
elec_meters :
1 :
site_meter : true
device_model : REDD_whole_house # claves en el diccionario
meter_devices data_location : house_1 / channel_1.dat
2 :
site_meter : true
device_model : REDD_whole_house
data_location : house_1 / channel_2.dat
3 :
submeter_of : 0 # '0' significa 'uno de los site_meters '. No sabemos
# qué medidor de sitio alimenta qué dispositivo en REDD.
device_model : eMonitor
data_location : house_1 / channel_3.dat
4 :
submeter_of : 0
device_model : eMonitor
data_location : house_4 / channel_4.dat
También podríamos especificar atributos como, pero ninguno de estos es relevante para REDD.room, floor, preprocessing_applied, statistics, upstream_meter_in_building
Ahora podemos especificar qué electrodomésticos se conectan a qué medidores.
Para referencia, aquí es el original labels.datde house_1REDD:
Usamos el esquema de dispositivo para especificar dispositivos. En REDD, todos los medidores miden circuitos usando pinzas de TC en la caja de fusibles de las casas. Algunos circuitos suministran energía a electrodomésticos individuales . Otros circuitos suministran energía a grupos de electrodomésticos.
appliances es una lista de diccionarios.
Comencemos demostrando cómo describimos los circuitos que suministran energía a un aparato individual:
electrodomésticos :
- tipo : nevera
instancia : 1
metros : [ 5 ]
original_name : nevera
Recuerde del ejemplo simple que el valor de dispositivo typese toma del vocabulario controlado por metadatos de NILM de tipos de dispositivo. original_namees el nombre utilizado en REDD, antes de la conversión al vocabulario controlado por metadatos NILM.
Ahora especificamos dos aparatos de 240 voltios. Los hogares norteamericanos tienen suministros de red de fase dividida. Cada división es de 120 voltios en relación con el neutro. Las dos divisiones son de 240 voltios entre sí. Los electrodomésticos grandes pueden conectarse a ambas divisiones para consumir mucha energía. REDD mide por separado ambas divisiones para estos electrodomésticos grandes, por lo que especificamos dos medidores por dispositivo de 240 voltios:
electrodomésticos :
- Tipo : horno eléctrico de
ejemplo : 1
metros : [ 3 , 4 ] # el horno obtiene la energía de ambas piernas 120 voltios
original_name : horno
- original_name : washer_dryer
tipo : lavadora secadora
ejemplo : 1
metros : [ 10 , 20 ]
componentes : # podemos especificar qué componentes se conectan a la que la pierna
- Tipo : motor
metros : [ 10 ]
- Tipo : elemento de calentamiento eléctrico
metros : [ 20 ]
Ahora especificamos cargas que no son dispositivos individuales sino que son categorías de dispositivos:
electrodomésticos :
- original_name : kitchen_outlets
room : kitchen
type : sockets # sockets se trata como una
instancia de electrodoméstico : 1
multiple : true # probablemente más de 1 socket
metros : [ 7 ]
- original_name : kitchen_outlets
habitación : cocina
tipo : sockets
instancia : 2 # 2da instancia de 'sockets' en este edificio
multiple : true # probablemente más de 1 socket
metros : [ 8 ]
- nombre_original : tipo de iluminación
: instancia de luz : 1 múltiplo : verdadero # es probable que tenga más de 1 metro de luz : [ 9 ]
- nombre_original : tipo de iluminación
: instancia de luz : 2 # 2da instancia de 'luz' en este edificio multiple : metros verdaderos : [ 17 ]
- nombre_original : tipo de iluminación
: instancia de luz : 3 # 3ra instancia de 'luz' en este edificio multiple : metros verdaderos : [ 18 ]
- nombre_original : baño_gfi # interruptor de falla a tierra
habitación : baño
tipo : instancia desconocida
: 1 múltiplo : medidores verdaderos : [ 12 ]
Tenga en cuenta que si tenemos varias instancias distintas del mismo tipo de dispositivo, entonces debemos usar objetos de dispositivo separados para cada instancia y no debemos agruparlos como un único objeto de dispositivo con varios meters. Solo especificamos múltiples meterspor appliancesi hay un solo aparato que obtiene energía de más de una fase o línea de alimentación.
En REDD, las casas 3, 5 y 6 también tienen un electronicscanal. ¿Cómo manejaríamos esto en NILM Metadata? Este es un medidor que no registra un solo aparato, pero registra una categoría de aparatos. Afortunadamente, debido a que NILM Metadata usa una estructura de herencia para los metadatos centrales, ya tenemos un (CE = Consumer Electronics). El objeto se construyó primero para actuar como una superclase abstracta para todos los objetos de electrónica de consumo, pero resulta útil para REDD:CE applianceCE appliance
- nombre_original : tipo de electrónica
: instancia de dispositivo CE : 1 múltiplo : medidores verdaderos : [ 6 ]
Hemos visto cómo representar el conjunto de datos REDD utilizando Metadatos NILM. El ejemplo anterior muestra la mayor parte de la estructura del esquema de metadatos NILM para conjuntos de datos. Hay muchos más atributos que se pueden adjuntar a esta estructura básica. Consulte la documentación de metadatos del conjunto de datos para obtener detalles completos de todos los atributos y valores que se pueden usar.
Metadatos centrales
Una segunda parte del proyecto de metadatos NILM son los ‘metadatos centrales’. Estos ‘metadatos centrales’ se almacenan en el propio proyecto de metadatos NILM y consisten en información como la asignación del tipo de dispositivo a la categoría del dispositivo; y la asignación del código de país a los valores de voltaje nominal.
Metadatos del conjunto de datos
Esta página describe el esquema de metadatos para describir un conjunto de datos.
Hay dos formatos de archivo para los metadatos: YAML y HDF5. Los archivos de metadatos YAML deben estar en una metadatacarpeta. Cada sección de este documento comienza describiendo dónde se almacenan los metadatos relevantes en ambos formatos de archivo.
Conjunto de datos
Este objeto describe aspectos sobre todo el conjunto de datos. Por ejemplo, el nombre del conjunto de datos, los autores, la ubicación geográfica de todo el conjunto de datos, etc.
Ubicación en YAML: dataset.yaml
Ubicación en HDF5: store.root._v_attrs.metadata
Atributos de metadatos (algunos de estos atributos están adaptados de Dublin Core Metadata Initiative (DCMI)):
nombre:
(cadena) (obligatorio) Nombre corto del conjunto de datos. por ejemplo, ‘REDD’ o ‘UK-DALE’. El elemento DCMI equivalente es ‘título’. Si este conjunto de datos es el resultado de un algoritmo de desagregación, el nombre se establecerá en un nombre corto para el algoritmo; por ejemplo, ‘CO’ o ‘FHMM’.
nombre largo:
(cadena) Nombre completo del conjunto de datos, p. ej. ‘Conjunto de datos de desagregación de energía de referencia’.
creadores:
(lista de cadenas) en el formato ‘<Último nombre>, <Nombre inicial>’. Elemento DCMI.
(cadena) Formato ISO 8601. por ejemplo, ‘2014-06-23’ Idéntico al elemento DCMI de ‘fecha’.
contacto:
(cadena) Dirección de correo electrónico
institución:
(cuerda)
descripción:
(cadena) Elemento DCMI. Breve descripción legible por humanos. por ejemplo, describa la frecuencia de muestreo, la ubicación geográfica, etc.
número_de_edificios:
(En t)
identificador:
(cadena): un identificador de objeto digital (DOI) o URI para el conjunto de datos. Elemento DCMI.
tema:
(cadena): Por ejemplo, ¿este conjunto de datos se refiere a edificios domésticos o comerciales? ¿Incluye datos desglosados dispositivo por dispositivo o solo datos de todo el edificio? Elemento DCMI. Texto libre legible por humanos.
cobertura_espacial:
(cadena): Cobertura espacial. por ejemplo, «Sur de Inglaterra». Relacionado con el elemento DCMI de ‘cobertura’. Texto libre legible por humanos.
periodo de tiempo:
( TimeFrame , ver más abajo) Fechas de inicio y finalización para todo el conjunto de datos.
fondos:
(lista de cadenas) Una lista de todas las fuentes de financiación utilizadas para producir este conjunto de datos.
editor:
(cadena) La entidad responsable de hacer que el recurso esté disponible. Los ejemplos de un editor incluyen una persona, una organización o un servicio. Elemento DCMI.
geo_location:
(dictar)localidad:(cadena) aldea, pueblo, ciudad o estadopaís:(cadena) Utilice un código de país estándar de dos letras definido por ISO 3166-1 alpha-2 . por ejemplo, «GB» o «EE. UU.».latitud:(número)longitud:(número)
lista_derechos:
(lista de dictados) Licencia (s) bajo las cuales este conjunto de datos esliberado. Relacionado con el elemento DCMI de ‘derechos’. Cada elemento tiene estos atributos:uri:(cadena) URI de licencianombre:(cadena) Nombre de la licencia
description_of_subjects:
(cadena) Una breve descripción de cómo se reclutaron los sujetos. ¿Son todos estudiantes de doctorado, por ejemplo? ¿Fueron incentivados a reducir su consumo de energía? ¿Cómo fueron elegidos?
documentos relacionados:
(lista de cadenas) Referencias sobre este conjunto de datos (por ejemplo, referencias a artículos académicos o páginas web). También describa brevemente el contenido de cada referencia (por ejemplo, ¿contiene una descripción de la configuración de medición? ¿O un análisis de los datos?) Relacionado con el elemento DCMI de ‘relación’.
Metadatos que describen cada modelo de medidor utilizado en el conjunto de datos. (Tenga en cuenta que ElecMeter se usa para representar instancias individuales de medidores en un edificio, mientras que MeterDevicese usa para representar información común a todas las instancias de una marca y modelo específico de medidor). Piense en esta sección como un catálogo de modelos de medidores utilizados en el conjunto de datos.
Ubicación en YAML: meter_devices.yaml
Ubicación en HDF5: store.root._v_attrs.metadataenmeter_devices
Un gran dict. Las claves son nombres de modelo de dispositivo (por ejemplo, ‘EnviR’). El propósito es registrar información sobre modelos específicos de medidor. Los valores son dictados con estas claves:
modelo:
(cadena) (obligatorio) El nombre del modelo de este dispositivo medidor.
model_url:
(cadena) La URL con más información sobre este modelo de medidor.
fabricante:
(cuerda)
fabricante_url:
(cuerda)
sample_period:
(número) (obligatorio) El período de muestreo nominal del medidor (es decir, el período de tiempo entre muestras consecutivas) en segundos.
período_máximo_muestra:
(número) (obligatorio) El tiempo máximo permitido entre muestras consecutivas. Suponemos que el medidor está apagado durante cualquier intervalo superior a max_sample_period. En otras palabras, definimos un «espacio» como dos muestras cualesquiera que estén más que max_sample_periodseparadas.
mediciones:
(lista) (obligatorio) El orden es el orden de las columnas en la tabla de datos.cantidad física: (cadena) (obligatorio) Uno de {‘potencia’, ‘energía’, ‘energía acumulada’, ‘voltaje’, ‘corriente’, ‘frecuencia’, ‘factor de potencia’, ‘estado’, ‘ángulo de fase’, ‘total distorsión armónica ‘,’ temperatura ‘}. Las columnas de ‘estado’ almacenan un ID de estado entero donde 0 está apagado y> 0 se refiere a estados definidos. (TODO: almacenar el mapeo de la identificación del estado por dispositivo al nombre del estado). Unidades: ángulo de fase: grados; potencia: vatios; energía: kWh; voltaje: voltios; corriente: amperios; temperatura: grados centígrados.escribe:(cadena) (requerido para ‘potencia’ y ‘energía’) Tipo de corriente alternativa (CA). Uno de {‘reactivo’, ‘activo’, ‘aparente’}.limite superior:(número)límite inferior:(número)
descripción:
(cuerda)
pagar por adelantado:
(booleano) ¿Es este un medidor de prepago?
inalámbrico:
(booleano)
configuración_inalámbrica:
(dict) Todas las cadenas son texto libre legible por humanos:base:(cadena) Descripción de la estación base utilizada. Fabricante, modelo, versión, etc.protocolo:(cadena) por ejemplo, ‘zibgee’, ‘WiFi’, ‘personalizado’. Si es personalizado, agregue un enlace a la documentación si está disponible.Frecuencia de carga: (número) MHz
registrador de datos:
(cadena) Descripción del registrador de datos utilizado
Edificio
Ubicación en YAML: building<I>.yaml
Ubicación en HDF5: store.root.building<I>._v_attrs.metadata
ejemplo:
(int) (obligatorio) La instancia de construcción en este conjunto de datos, comenzando desde 1
nombre original:
(cadena) Nombre original del edificio a partir de metadatos antiguos (metadatos anteriores a NILM).
medidores_electricos:
(dictado de dictados) (obligatorio) Cada clave es un número entero (> = 1) que representa la instancia del medidor en este edificio. Cada valor es un ElecMeter. Consulte la sección a continuación sobre ElecMeter .
accesorios:
(lista de dictados) (obligatorio) Consulte la sección a continuación sobre el aparato .
medidores de agua:
(dictado de dictados) Misma estructura que elec_meters.
medidores_gás:
(dictado de dictados) Misma estructura que elec_meters.
descripción:
(cuerda)
habitaciones:
(lista de dictados):nombre:(cadena) (obligatorio) uno de {‘salón’, ‘cocina’, ‘dormitorio’, ‘lavadero’, ‘garaje’, ‘sótano’, ‘baño’, ‘estudio’, ‘guardería’, ‘pasillo’, ‘ comedor ‘,’ al aire libre ‘}ejemplo:(int) (opcional. Empieza desde 1. Si está ausente, se supone que es 1.)descripción:(cuerda)suelo:(int) La planta baja es el piso 0.
n_ocupantes:
(int) Modo número de ocupantes.
description_of_occupants:
(cadena) texto libre que describe a los ocupantes. ¿Número de niños, adolescentes, adultos, jubilados? ¿Demografía? ¿Estuvieron todos los ocupantes fuera de la casa durante todos los días de la semana?
(lista de objetos TimeFrame , ver más abajo) Períodos en los que este edificio estuvo vacío durante más de un día (por ejemplo, días festivos)
año de construcción:
(int) Año calendario de construcción de cuatro dígitos.
mejoras_energéticas:
(lista de cadenas) ¿Alguna modificación posterior a la construcción? Alguna combinación de {‘fotovoltaica’, ‘solar térmica’, ‘aislamiento de paredes huecas’, ‘aislamiento de loft’, ‘aislamiento de paredes sólidas’, ‘doble acristalamiento’, ‘acristalamiento secundario’, ‘triple acristalamiento’}
calefacción:
(lista ordenada de cadenas, con el combustible más dominante primero) Alguna combinación de {‘gas natural’, ‘electricidad’, ‘carbón’, ‘madera’, ‘biomasa’, ‘petróleo’, ‘GLP’}
caldera_comunal:
booleano (establecido en verdadero si la calefacción es proporcionada por una caldera compartida para los apartamentos)
propiedad:
(cadena) uno de {‘alquilado’, ‘comprado’}
tipo de construcción:
(cadena) uno de {‘bungalow’, ‘casa de campo’, ‘independiente’, ‘final de la terraza’, ‘plano’, ‘adosado’, ‘terraza intermedia’, ‘residencias de estudiantes’, ‘fábrica’, ‘ oficina ‘,’ universidad ‘}
Construyendo metadatos que se heredan de Dataset pero que pueden ser anulados por Building:
geo_location
zona horaria
periodo de tiempo
ElecMeter
Los ElecMeters son los valores del elec_metersdictado de cada edificio (consulte la sección sobre metadatos del edificio más arriba).
(int) (requerido) la instancia de medidor del medidor aguas arriba. O configúrelo para 0que signifique » uno de los site_meters «. En la práctica, 0se interpretará como “aguas abajo de un ‘Grupo de medidores’ que representa todos los medidores del sitio sumados”.
submeter_of_is_uncertain:
(booleano) Se establece en verdadero si el valor de submeter_of es incierto.
upstream_meter_in_building:
(int) Si el medidor de aguas arriba está en un edificio diferente, especifique aquí esa instancia de edificio. Si se deja en blanco, asumimos que el medidor de aguas arriba está en el mismo edificio que este medidor.
site_meter:
(booleano): requerido y establecido en Verdadero si se trata de un medidor de sitio (es decir, el medidor más alejado aguas arriba) de lo contrario no es necesario. Si hay varias fases de red (por ejemplo, red trifásica) o múltiples ‘divisiones’ de red (por ejemplo, en América del Norte, donde hay dos divisiones de 120 voltios), configure site_meter=trueen cada medidor del sitio. Se deben configurar todos los medidores que no sean del sitio directamente aguas abajo de los medidores del sitio submeter_of=0. Opcionalmente, utilice también phasepara describir qué fase mide este medidor. ¿Qué sucede si hay varios medidores de sitio en paralelo?(es decir, hay contadores redundantes)? Por ejemplo, tal vez haya un medidor de sitio instalado por la empresa de servicios públicos que proporciona lecturas poco frecuentes; y también hay un elegante medidor de sitio digital que mide en el mismo punto en el árbol de cableado y, por lo tanto, en cierto sentido, el medidor de servicios públicos puede considerarse ‘redundante’ pero se incluye en el conjunto de datos para la comparación). En esta situación, configure site_meter=trueen cada medidor de sitio. A continuación, configure disabled=truetodos menos el medidor de sitio «favorecido» (que normalmente sería el medidor de sitio que proporciona las «mejores» lecturas). Es importante configurarlo de disabled=truemanera que NILMTK no sume los medidores de sitios paralelos. Los medidores de sitio deshabilitados también deben configurarse submeter_ofcon el ID del medidor de sitio habilitado. Se deben configurar todos los medidores que no sean del sitio directamente aguas abajo de los medidores del sitio submeter_of=0.
medidor_de_servicio:
(booleano) requerido y establecido en Verdadero si este medidor fue instalado por la empresa de servicios públicos. De lo contrario, no es necesario.
(cadena) (opcional) p. ej., ‘total del primer piso’.
fase:
(int o string) (opcional) Se usa en configuraciones de múltiples fases.
habitación:
(cuerda) . por ejemplo, «cocina» o «dormitorio, 2». Si no se especifica (p. Ej., ‘Habitación: cocina’, se asume que es ‘cocina, 1’ (es decir, instancia de cocina 1). Si los metadatos del edificio especifican un conjunto de , la habitación especificada aquí se introducirá en la del edificio (pero no en todos). Los conjuntos de datos enumeran todas las habitaciones de cada edificio).<room name>[,<instance>]instanceroomsrooms
suelo:
(int) No es necesario si roomse especifica. Planta baja es 0.
ubicación_de_datos:
(cadena) (obligatorio) Ruta relativa al directorio raíz del conjunto de datos. ej house1/channel_2.dat. Tablas de referencia y columnas dentro de un archivo jerárquico, por ejemplo data.h5?table=/building1/elec/meter1, o, si estos metadatos se almacenan en el mismo archivo HDF que los datos del sensor, simplemente use la clave, por ejemplo /building1/elec/meter1.
discapacitado:
(bool): se establece en verdadero si NILMTK debe ignorar este canal. Esto es útil si, por ejemplo, este canal es un site_meter redundante.
preprocessing_applied:
(dict): cada tecla es opcional y solo está presente si se ha ejecutado esa función de preprocesamiento.acortar:(dictar)límite inferior:limite superior:
Estadísticas:
(lista de dictados): cada dictado describe estadísticas para un conjunto de períodos de tiempo. Cada dictado tiene:marcos de tiempo:(lista de objetos TimeFrame ) (obligatorio) Los plazos sobre los que se calcularon estas estadísticas. Si las estadísticas se refieren a la serie temporal completa, ingrese el inicio y el final de la serie temporal como el único TimeFrame.buenas_secciones:(lista de objetos TimeFrame )contiguous_sections: (lista de objetos TimeFrame )energía_total:(dic) kWhactivo:(número)reactivo:(número)aparente:(número)Tenga en cuenta que algunas de estas estadísticas se almacenan en caché por NILMTK en building<I>/elec/cache/meter<K>/<statistic_name>. Para obtener más detalles, consulte la cadena de documentación de nilmtk.ElecMeter._get_stat_from_cache_or_compute().
WaterMeter y GasMeter
Mismos atributos que ElecMeter .
Aparato
Cada dictado de aparato tiene:
escribe:
(cadena) (obligatorio) tipo de aparato (p. ej., «hervidor»). Utilice vocabulario controlado por metadatos NILM. Consulte nilm_metadata / central_metadata / appliance_types / *. Yaml . Cada *.yamlarchivo nilm_metadata/central_metadata/appliance_typeses un diccionario grande. Cada clave de estos diccionarios es un dispositivo legal type.
ejemplo:
(int a partir de 1) (obligatorio) instancia de este electrodoméstico dentro del edificio.
metros:
(lista de ints) (requerido) instancias de medidor directamente aguas arriba de este aparato. Esta es una lista para manejar el caso en el que algunos electrodomésticos obtienen energía de ambas patas de 120 voltios en una casa de América del Norte. O electrodomésticos trifásicos.
dispositivo_dominante:
(booleano) (obligatorio si hay varios aparatos conectados a un medidor). ¿Este aparato es responsable de la mayor parte de la demanda de energía en este medidor?
on_power_threshold:
(número) vatios. No requerido. El valor predeterminado se toma del tipo de dispositivo . El umbral (en vatios) que se utiliza para decidir si el dispositivo está encendido o apagado .
(booleano) Verdadero si hay más de uno de estos dispositivos representados por este único applianceobjeto. Si hay exactamente un dispositivo, no lo especifique multiple.
contar:
(int) Si hay más de uno de estos dispositivos representados por este applianceobjeto y si se conoce el número exacto de dispositivos, especifique ese número aquí.
control:
(lista de cadenas) Proporcione una lista de todos los métodos de control que se aplican. Por ejemplo, una grabadora de video sería tanto «manual» como «temporizador». El vocabulario es: {‘temporizador’, ‘manual’, ‘movimiento’, ‘luz del sol’, ‘termostato’, ‘siempre encendido’}
clasificación_eficiencia:
(dic):Nombre de certificacion: (cadena) por ejemplo, ‘SEDBUK’ o ‘Energy Star 5.0’clasificación:(cadena) por ejemplo, ‘A +’
consumo_nominal:
(dict): Especificaciones informadas por el fabricante.en el poder:(número) potencia activa en vatios cuando está encendido.energía de reserva:(número) potencia activa en vatios cuando está en espera.energía_por_año: (número) kWh por añoenergía_por_ciclo: (número) kWh por ciclo
componentes:
(lista de dictados): componentes de este aparato. Cada dict es un dict de Appliance.
modelo:
(cuerda)
fabricante:
(cuerda)
marca:
(cuerda)
nombre original:
(cuerda)
model_url:
(cadena) URL para este modelo de dispositivo
fabricante_url:
(cadena) URL del fabricante
fechas_activas:
(lista de objetos TimeFrame , ver más abajo) Puede usarse para especificar un cambio en el dispositivo a lo largo del tiempo (por ejemplo, si un dispositivo se reemplaza por otro).
Se especifican propiedades adicionales para algunos tipos de dispositivos. Busque objetos en nilm_metadata/central_metadata/appliances/*.yamlpara obtener más detalles.
Cuando un objeto Appliance se usa como componente de un ApplianceType, entonces el objeto Appliance puede tener un distributionsdict (ver ApplianceType:distributionsen Metadatos del dispositivo central ) especificado y también puede usar una propiedad que evita que el sistema fusione categorías del componente en el dispositivo contenedor.do_not_merge_categories: true
Periodo de tiempo
Representa un marco de tiempo arbitrario. Si el inicio o el final están ausentes, suponga que es igual al inicio o al final del conjunto de datos, respectivamente. Utilice el formato ISO 8601 para fechas o fechas (por ejemplo, 2014-03-17 o 2014-03-17T21: 00: 52 + 00: 00)
comienzo:
(cuerda)
fin:
(cuerda)
Metadatos del dispositivo central
Herencia
herencia protípica; como JavaScript
los dictados se actualizan; las listas se amplían; otras propiedades se sobrescriben
profundidad de herencia arbitraria
Componentes
recursivo
Las categorías de dispositivo contenedor se actualizan con categorías de cada componente (a menos que se establezca en el componente)do_not_merge_categories: true
Subtipos frente a un nuevo objeto secundario
Los objetos de especificación de dispositivo pueden tomar una propiedad de ‘subtipo’. ¿Por qué no utilizar la herencia para todos los subtipos? La regla general es que si un subtipo es funcionalmente diferente a su padre, entonces debe especificarse como un objeto independiente o secundario (por ejemplo, una encimera de gas y una encimera eléctrica claramente tienen perfiles de consumo de electricidad radicalmente diferentes) pero si las diferencias son menor (por ejemplo, una radio digital frente a una radio analógica), los aparatos deben especificarse como subtipos del mismo objeto.
Convenciones de nombres
las propiedades están en minúsculas con guiones bajos, por ejemplo, subtipo
los nombres de los objetos (no marcas y modelos específicos) están en minúsculas con espacios, a menos que sean acrónimos, en cuyo caso están en mayúsculas (por ejemplo, ‘LED’)
los nombres de las categorías están en minúsculas con espacios
Ejemplo
Para demostrar el sistema de herencia, veamos cómo especificar una caldera.
Primero, NILM Metadata especifica un objeto de ‘aparato de calefacción’, que se puede considerar la ‘clase base’:
aparato de calefacción :
padre : categorías de aparato
: tradicional : tamaño de calefacción : grande
A continuación, especificamos un objeto ‘caldera’, que hereda de ‘aparato de calefacción’:
# ------------- CALDERAS ------------------------
caldera : # todas las calderas excepto las calderas eléctricas
padre : aparato de calefacción
sinónimos : [ horno ]
# Las categorías del objeto hijo se agregan
# a las categorías existentes en el padre.
categorías :
google_shopping :
- climatización
- hornos y calderas
# Aquí especificamos que las calderas tienen un componente
# que es en sí mismo un objeto cuyo padre
# es "bomba de agua".
componentes :
- tipo : bomba de agua
# Las calderas tienen una propiedad que la mayoría de los demás aparatos
# no tienen: una fuente de combustible. Especificamos
propiedades #
adicionales usando la sintaxis de esquema JSON. additional_properties :
fuel :
enum : [ gas natural , carbón , madera , petróleo , GLP ]
subtipos :
- combi
- regular
# Podemos especificar los diferentes mecanismos que
# controlan la caldera. Esto es útil, por ejemplo,
# si queremos encontrar todos los aparatos que
# deben controlarse manualmente (por ejemplo, tostadoras)
control : [ manual , temporizador , termostato ]
# También podemos declarar conocimientos previos sobre calderas.
# Por ejemplo, sabemos que las calderas tienden a estar en
# baños, lavaderos o cocinas
distribuciones :
habitación :
distribución_de_datos :
categorías : [ baño , servicios públicos , cocina ]
valores : [ 0.3 , 0.2 , 0.2 ]
# Si los valores no suman a 1 entonces el supuesto
# es que la masa de probabilidad restante se distribuye igualmente a
# todas las demás habitaciones.
fuente : subjetivo # ¡Estos valores son básicamente conjeturas!
Finalmente, en los metadatos del conjunto de datos en sí, podemos hacer:
tipo : caldera
fabricante : Worcester
modelo : Greenstar 30CDi convencional de gas natural
habitación : baño
year_of_purchase : 2011
combustible : gas natural
subtipo : regulares
part_number : 41-311-71
efficiency_rating :
certification_name : SEDBUK
calificación : Un
nominal_consumption :
on_power : 70
Detalles del esquema
A continuación se muestra un diagrama de clases UML que muestra todas las clases y las relaciones entre clases:
A continuación describimos todas las clases y sus atributos y posibles valores.
ApplianceType
Tiene muchos de los atributos que tiene Appliance , además de:
on_power_threshold
min_off_duration
min_on_duration
control
componentes
padre:
(cadena) Nombre del objeto ApplianceType principal del que hereda este objeto.
categorías:
(dictar)tradicional:(enumeración) uno de {húmedo, frío, electrónica de consumo, TIC, cocina, calefacción}Talla:(enumeración) uno de {small, large}eléctrico:(lista de cadenas) Cualquier combinación de:iluminación, incandescente, fluorescente, compacta, lineal, LEDresistadorelectrónica de potenciaSMPS, sin PFC, PFC pasivo, PFC activomotor de inducción monofásico, arranque-marcha del condensador, par constantemisceláneo:(enumeración) uno de {misc, sockets}google_shopping: (lista de cadenas) cualquier cosa del esquema de Google Shopping. por ejemplo: control de clima ‘,’ hornos y calderas ‘,’ energía renovable ‘,’ energía solar ‘,’ paneles solares ‘,’ computadoras ‘,’ electrónica ‘,’ computadoras portátiles ‘,’ impresoras y fotocopiadoras ‘,’ impresión, copia, escanear y enviar por fax ‘,’ impresoras ‘,’ aparatos de lavandería ‘,’ cocina y comedor ‘,’ aparatos de cocina ‘,’ panificadoras ‘
subtipos:
(lista de cadenas) Una lista de todos los subtipos válidos.
propiedades_adicionales:
(dict) Se utiliza para especificar propiedades adicionales que se pueden especificar para dispositivos de este tipo de dispositivo. Cada llave es una propiedad. Cada valor es una definición de esquema JSON de la propiedad.
do_not_inherit:
(lista de cadenas) propiedades que no deben heredarse del padre.
sinónimos:
(lista de cadenas)
componentes_usuales:
(lista de cadenas) Solo una lista de sugerencias para lectores humanos.
n_ancestros:
(int) Completado por _concatenate_complete_object.
distribuciones:
(dict) Distribución de variables aleatorias.en el poder:(lista de objetos anteriores ) bin_edges en unidades de vatioson_duration:(lista de objetos anteriores ) bin_edges en unidades de segundosoff_duration:(lista de objetos anteriores ) bin_edges en unidades de segundosuso_hora_por_día: (lista de objetos anteriores ) bin_edges = [0,1,2,…, 24]uso_día_por_semana: (lista de objetos anteriores ) categorías = [‘mon’, ‘tue’,…, ‘sun’]use_month_per_year: (lista de objetos anteriores ) bin_edges están en unidades de días (necesitamos los bordes de bin porque los meses no tienen la misma longitud). El primer contenedor representa enero.habitaciones:(lista de objetos anteriores ) Distribución categórica en las habitaciones donde es probable que se utilice este aparato. Por ejemplo, para un frigorífico, podría ser «cocina: 0,9, garaje: 0,1». Utilice los nombres de habitación estándar definidos en room.json (los nombres de categoría en las distribuciones no se validan automáticamente).subtipos:(lista de objetos anteriores ) Distribución categórica sobre los subtipos.correlaciones_de_dispositivo: (lista de objetos anteriores ) lista de otros aparatos. Probabilidad de que este aparato esté encendido dado que el otro aparato está encendido. Por ejemplo, ‘ tv: 0.1 , amp: 0.4,…’ significa que hay un 10% de probabilidad de que este aparato esté encendido si el televisor está encendido. El nombre de cada categoría puede ser solo un nombre de dispositivo (p. Ej., ‘Nevera’) o <nombre de dispositivo>, <instancia de dispositivo> p. Ej., ‘Nevera, 1’propiedad_por_país: (lista de objetos anteriores ) Probabilidad de que este electrodoméstico sea propiedad de un hogar en cada país (es decir, una distribución categórica donde las categorías son el código de país estándar de dos letras definido por ISO 3166-1 alfa-2. Por ejemplo, ‘GB’ o ‘EE. UU.’ . http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ). Si la probabilidad se refiere a todo el mundo, utilice «GLOBAL» como código de país.propiedad_por_continente: (lista de objetos anteriores ) Probabilidad de que este electrodoméstico sea propiedad de un hogar en cada país (es decir, una distribución categórica donde las categorías son el código de continente estándar de dos letras definido en http://en.wikipedia.org/wiki/List_of_sovereign_states_and_dependent_territories_by_continent_%28data_file% 29
País
Un gran dict que especifica información específica del país. Especificado ennilm_metadata/central_metadata/country.yaml
Cada clave es un ‘país’ (cadena). Utilice un código de país estándar de dos letras definido por ISO 3166-1 alpha-2 . por ejemplo, «GB» o «EE. UU.».
Cada valor es un dict con los siguientes atributos:
Representar conocimientos previos. Para las variables continuas, especifique la distribución de los datos (es decir, los datos representados en un histograma) o una estimación de densidad (un modelo ajustado a los datos), o ambos. Para las variables categóricas, especifique la distribución categórica.
distribución_de_datos:
(dict) Distribución de los datos expresados comofrecuencias normalizadas por intervalo discreto (para variables continuas) o por categoría (para variables categóricas). Se puede usar ‘categorías’ en lugar de ‘bin_edges’ para variables continuas donde tenga sentido; por ejemplo, donde cada contenedor representa un día de la semanabin_edges:(lista de números de lista de cadenas) (obligatorio) | bin_edges | == | valores | + 1categorías:(lista de cadenas) (obligatorio) | bin_edges | == | valores |valores:(lista de números) (obligatorio) Las frecuencias normalizadas. Para variables continuas, en integral sobre el rango debe ser 1. Para variables categóricas, la suma de frecuencias puede ser <= 1. Si <1, el sistema asumirá que la masa restante se distribuye equitativamente en todas las demás categorías. Por ejemplo, para la probabilidad de que un frigorífico esté en una habitación específica, basta con indicar que la probabilidad de que un frigorífico esté en la cocina es 0,9.
modelo:
(dict) Un modelo ajustado para describir la densidad de probabilidadfunción (para variables continuas) o la función de masa de probabilidad (para variables discretas). Use propiedades adicionales para los parámetros relevantes, escritas como letras griegas en inglés en minúsculas, por ejemplo, ‘mu’ y ‘lambda’, excepto para las estadísticas de resumen donde usamos alguna combinación de ‘min’, ‘max’, ‘mean’, ‘mode’ .nombre_distribucion: (enumeración) uno de {‘normal’, ‘gaussiano inverso’, ‘resumen de estadísticas’}sum_of_squared_error: (número)
n_datapoints:
(En t)
Fecha Preparada:
(cadena) Formato de fecha ISO 8601
fuente:
(enumeración) uno de {‘subjetivo’, ‘empírico a partir de datos’, ‘empírico a partir de publicación’}. ¿Cuál es la fuente de este previo? Si es de publicación, utilice related_documentspara proporcionar referencias. Si procede de datos, proporcione detalles mediante las propiedades softwarey training_data.
documentos relacionados:
(lista de cadenas) Si ‘fuente == empírica de la publicación’ entonces ingrese la (s) referencia (s) aquí.
software:
(cadena) el software utilizado para generar el anterior a partir de los datos.
(int) esto se completa con la concatenate_complete_objectfunción e informa la distancia (en número de generaciones) entre este objeto anterior y el más derivado. En otras palabras, cuanto mayor sea este número, menos específico del objeto es este anterior. Si no se establece, el anterior se aplica al objeto actual.
from_appliance_type:
(cadena) esto lo completa la concatenate_complete_objectfunción e informa el nombre del tipo de dispositivo de la jerarquía del ancestro de donde proviene esta distribución.
descripción:
(cuerda)
datos de entrenamiento:
(conjunto de dictados). Cada elemento es un dictado con estas propiedades:conjunto de datos:(cadena) Nombre corto del conjunto de datosedificios:(lista de dictados):building_id:(En t)fechas:(lista de objetos de esquema de intervalo )país:(cadena) código de país estándar de dos letras definido por ISO 3166-1 alpha-2, por ejemplo, ‘GB’ o ‘US’.
DesgloseModelo
Esto aún no está especialmente bien definido. Solo un boceto inicial. La idea básica es que podríamos especificar modelos para cada tipo de aparato.
tipo_de_dispositivo:
(cadena) Referencia al ApplianceType específico que estamos modelando.
tipo de modelo:
(enumeración) uno de {‘HMM’, ‘FHMM’, ‘optimización para gobernador’}
parámetros:
(dict) Parámetros específicos de cada tipo de modelo.
DisaggregationModel reutiliza varias propiedades de Prior :
Creación de un proyecto de aplicación Blazor WebAssembly hospedado
Siga las instrucciones para su elección de herramientas:
Se requiere Visual Studio 16.8 o posterior y el SDK de .NET Core 5.0.0 o posterior.
Cree un nuevo proyecto.
Seleccione Aplicación Blazor y luego Siguiente.
Escriba BlazorSignalRApp en el campo Nombre del proyecto. Confirme que la entrada de Ubicación es correcta o proporcione una ubicación para el proyecto. Seleccione Crear.
Elija la plantilla Aplicación de Blazor WebAssembly .
En Avanzado, active la casilla ASP.NET Core hospedado.
Seleccione Crear.
Adición de la biblioteca cliente de SignalR
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto BlazorSignalRApp.Client y seleccione Administrar paquetes NuGet.
En el cuadro de diálogo Administrar paquetes NuGet, confirme que Origen del paquete se ha establecido en nuget.org.
Con Examinar seleccionado, escriba Microsoft.AspNetCore.SignalR.Client en el cuadro de búsqueda.
Si aparece el cuadro de diálogo Vista previa de los cambios, seleccione Aceptar.
Si aparece el cuadro de diálogo Aceptación de la licencia, seleccione Acepto si está de acuerdo con los términos de la licencia.
Agregar un concentrador de SignalR
En el proyecto BlazorSignalRApp.Server, cree una carpeta Hubs (plural) y agregue la siguiente clase ChatHub (Hubs/ChatHub.cs):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.SignalR;
namespace BlazorSignalRApp.Server.Hubs
{
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
}
Adición de servicios y de un punto de conexión para el concentrador de SignalR
En el proyecto BlazorSignalRApp.Server, abra el archivo Startup.cs.
Agregue el espacio de nombres para la clase ChatHub en la parte superior del archivo:C#Copiarusing BlazorSignalRApp.Server.Hubs;
Agregue servicios de middleware de compresión de respuesta y SignalR a Startup.ConfigureServices:
En el Explorador de soluciones, seleccione el proyecto BlazorSignalRApp.Server. Presione F5 para ejecutar la aplicación con depuración o Ctrl+F5 para ejecutarla sin depuración.
Copie la dirección URL de la barra de direcciones, abra otra instancia o pestaña del explorador, y pegue la dirección URL en la barra de direcciones.
Elija cualquier explorador, escriba un nombre y un mensaje, y haga clic en el botón para enviar el mensaje. El nombre y el mensaje se muestran en ambas páginas al instante:
Mientras trabaja en proyectos de ciencia de datos, generalmente obtiene una gran cantidad de datos. Pero es posible que deba trabajar solo con un subconjunto de columnas de los datos. Esta selección de datos necesarios se realiza para simplificar las tareas. Además, las velocidades de cálculo también se mejoran al trabajar con un conjunto de datos más pequeño. Hay varias maneras de seleccionar columnas de trama de datos, incluyendo loc, iloc, filter, etc. Este post cubre todos los métodos con ejemplos.
Crear un conjunto de datos de muestra
Comience creando un marco de datos de pandas simple como se muestra a continuación. Tiene 6 columnas.
Una de las formas más básicas en pandas para seleccionar columnas del marco de datos es pasando la lista de columnas al operador de indexación del objeto del marco de datos.
# Selecting columns by passing a list of desired columns
df[['Color', 'Score']]
2. Selección de columnas mediante la lista de columnas
El dataframe_name.columnsdevuelve la lista de todas las columnas de la trama de datos. Puede usar esto como una de las formas de acceder a múltiples columnas en pandas. Debe pasar la lista modificada de columnas en el operador de indexación del marco de datos. Este método se puede realizar de dos formas:
A. Pasando la lista de columnas divididas
Puede dividir los nombres de columna deseados de la lista de todas las columnas devueltas dataframe_name.columnspor indexación.
# slicing df.columns to access the last two columns of the dataframe
df[df.columns[-2:]]
B. Búsqueda de columnas deseadas usando isin()
La función se usa para verificar si un elemento está presente en la lista. Aquí, la función se puede usar para verificar si el nombre de una columna está presente en la lista, así como la lista de columnas deseadas. Esto ayuda a seleccionar varias columnas de la lista de todas las columnas. La función devuelve una matriz booleana, donde valor denota que el nombre de la columna estaba presente en ambas listas.isin(), the isin()df.columnsTrue
# Creating the boolean mask
booleanMask = df.columns.isin(['State', 'Food'])
# saving the selected columns
selectedCols = df.columns[booleanMask]
# selecting the desired columns
df[selectedCols]
3. Usar .loc y .iloc para seleccionar columnas por nombre o posición
Los pandas y los indexadores se pueden usar con el marco de datos de pandas para reducir un marco de datos grande en un marco de datos pequeño. Estos indexadores se pueden utilizar para la selección de filas y columnas..loc.iloc
A. Usando indexador.loc
The loctoma nombres de columnas o listas de columnas y devuelve una fila o un marco de datos. El indexador toma tanto filas como columnas. Por lo tanto, para seleccionar solo columnas del marco de datos, puede dejar la división de filas como :, lo que seleccionará todas las filas del marco de datos.
Para la división de columnas, puede pasar el nombre de la columna que se seleccionará.
The ilocindexador es similar al indexador. La única diferencia es que toma índices de columnas o índices de listas de columnas y devuelve una fila o marco de datos..lociloc
Aquí también, puede dejar la división de filas :para seleccionar todas las filas y para la división de columnas, puede pasar los índices de la columna o una lista de índices de las columnas que se seleccionarán.
# .iloc single column selection
df.iloc[:, [0, 2, 3] ]
4. Usar métodos de filtro para seleccionar columnas que contienen ciertas palabras.
Puede usar la función de filtro del marco de datos de pandas para seleccionar columnas que contengan una cadena específica en los nombres de las columnas.
El parámetro likede la función define esta cadena específica. Si el nombre de una columna contiene la cadena especificada, esa columna se seleccionará y se devolverá el marco de datos..filter
# selecting columns where column name contains 'Average' string
df.filter(like='Average')
5. Pandas Selecciona columnas según su tipo de datos.
El marco de datos de Pandas tiene la función select_dtypes, que tiene un includeparámetro. Especifique el tipo de datos de las columnas que desea seleccionar usando este parámetro. Esto puede resultarle útil si desea seleccionar solo columnas de tipos de datos específicos del marco de datos.
También puede seleccionar columnas basadas en reglas de expresiones regulares. Utilice el regexparámetro en la función de filtro para obtener columnas donde los nombres de columna se evalúan como Verdadero en una expresión dada.
La selección de columnas según los tipos de datos puede resultar útil al realizar un análisis exploratorio de datos. Tendrá diferentes tipos de datos separados, lo que eliminará el proceso de crear manualmente la lista de columnas para diferentes tipos de datos.
Pandas es un marco de código abierto rápido, eficiente, modular y fácil de usar para el análisis y la manipulación de datos. Está diseñado sobre el lenguaje de programación Python y, por lo tanto, Pandas es pitónico.
Ubuntu 20.04 , cuyo nombre en código es Focal Fossa, es la versión más reciente de Ubuntu LTS. Saldrá en abril de 2020 y tendrá soporte durante 5 años hasta abril de 2025 (soporte estándar).
Ubuntu 20.04 también incluye Python 3 de forma predeterminada, por lo que no es necesario instalarlo también. Este es un movimiento de mandato porque la Fundación Python ya anunció el EOL de Python 2 , que es el 1 de enero de 2020. En las versiones anteriores de Ubuntu, Python 2 es el predeterminado y escribir python en la terminal lo llevará a Python 2, lo que significa tenemos que escribir python3 para usar Python 3. Ahora puede instalar python-is-python3, que se establecerá python en python3.
Método 1: instalar el python3-pandaspaquete del sistema
El primer método es instalar el paquete del sistema python3-pandas en Ubuntu 20.04. La versión puede estar desactualizada, pero generalmente viene con menos errores que pueden introducirse en versiones posteriores. Aquí está la información sobre python3-pandas:
Paquete: python3-pandas
Versión: 0.25.3 + dfsg-7
Prioridad: opcional
Sección: universe / python
Fuente: pandas
Origen: Ubuntu
Mantenedor: Desarrolladores de Ubuntu [email protected] Mantenedor
original: Debian Science Team [email protected]
Errores: https://bugs.launchpad.net/ubuntu/+filebug
Tamaño instalado: 14.3 MB
Depende: python3 (<< 3.9), python3 (> = 3.8 ~), python3-dateutil, python3-numpy (> = 1: 1.15 ~), python3-tz, python3: any, python3-pandas-lib (> = 0.25 .3 + dfsg-7), python3-pkg-resources, python3-six
Recomienda: python3-scipy, python3-matplotlib, python3-numexpr, python3-tables, python3-xlrd, python3-openpyxl, python3-xlwt, python3-bs4, python3-html5lib, python3-lxml
Sugiere: python-pandas-doc, python3-statsmodels
Descansos: cnvkit (<< 0.9.6-1.1), python3-feather-format (<< 0.3.1 + dfsg1-2.1), python3-skbio (<< 0.5.5-2.1), python3-statsmodels (<< 0.10 .0 ~), tipos q2 (<< 2019.7.0-1.1)
Inicio: https://pandas.pydata.org/
Tamaño de descarga: 1,968 kB
Fuentes APT: http://archive.ubuntu.com/ubuntu focal / universe paquetes amd64
Descripción: estructuras de datos para datos "relacionales" o "etiquetados"
pandas es un paquete de Python que proporciona rapidez, flexibilidad y expresividad
estructuras de datos diseñadas para trabajar con "relacionales" o
datos "etiquetados" fáciles e intuitivos. Pretende ser el fundamental
bloque de construcción de alto nivel para hacer datos prácticos del mundo real
análisis en Python. pandas es adecuado para muchos tipos diferentes de
datos:
.
Datos tabulares con columnas de tipos heterogéneos, como en un SQL
tabla o hoja de cálculo de Excel
Tiempo ordenado y desordenado (no necesariamente de frecuencia fija)
datos de la serie.
Datos matriciales arbitrarios (homogéneamente tipificados o heterogéneos) con
etiquetas de fila y columna
Cualquier otra forma de conjuntos de datos observacionales / estadísticos. Los datos
en realidad, no es necesario etiquetarlo en absoluto para colocarlo en un pandas
estructura de datos
.
Este paquete contiene la versión Python 3.
Para instalar el paquete, ejecute el siguiente apt installcomando y presione «Y» para continuar con la instalación:
sudo apt install python3-pandas
Verá la salida como la captura de pantalla a continuación (todo el texto se pega después de la captura de pantalla). Python 3 y numpy también se instalarán si no lo tiene en su sistema. Como puede ver a continuación, ocupará 100 MB de su disco.
Instale el paquete de documentación de panda: python-pandas-doc
Una vez que haya instalado pandas, se recomienda instalar también el paquete de documentación python-pandas-doc. De esta manera, puede acceder fácilmente a la documentación de panda sin conexión sin tener que ir al sitio web de pandas cada vez.
Para instalarlo, ejecute el siguiente comando:
sudo apt install python-pandas-doc
Verá la salida como la captura de pantalla a continuación. Presione ‘Y’ para continuar.
vh @ varhowto-com: ~ $ sudo apt install python-pandas-doc
Leyendo listas de paquetes… Listo
Construyendo árbol de dependencia
Leyendo información de estado… Listo
Se instalarán los siguientes paquetes adicionales:
fuentes-mathjax libjs-mathjax libjs-requirejs
Paquetes sugeridos:
fuentes-mathjax-extras fonts-stix libjs-mathjax-doc
Se instalarán los siguientes paquetes NUEVOS:
fuentes-mathjax libjs-mathjax libjs-requirejs
python-pandas-doc
0 actualizado, 4 recién instalados, 0 para eliminar y 49 sin actualizar.
Necesita obtener 14,8 MB de archivos.
Después de esta operación, se utilizarán 105 MB de espacio adicional en disco.
¿Quieres continuar? [Y / n] años
Obtenga: 1 http://archive.ubuntu.com/ubuntu focal / universe amd64 fonts-mathjax all 2.7.4 + dfsg-1 [2,208 kB]
Obtener: 2 http://archive.ubuntu.com/ubuntu focal / universe amd64 libjs-requirejs all 2.3.6-1 [29.9 kB]
Obtener: 3 http://archive.ubuntu.com/ubuntu focal / universe amd64 libjs-mathjax all 2.7.4 + dfsg-1 [5,654 kB]
Obtenga: 4 http://archive.ubuntu.com/ubuntu focal / universe amd64 python-pandas-doc all 0.25.3 + dfsg-7 [6,939 kB]
Obtenido 14,8 MB en 2 s (6886 kB / s)
Seleccionando el paquete fonts-mathjax previamente no seleccionado.
(Leyendo la base de datos… 287140 archivos y directorios instalados actualmente).
Preparándose para descomprimir… / fonts-mathjax_2.7.4 + dfsg-1_all.deb…
Desempaquetando fonts-mathjax (2.7.4 + dfsg-1)…
Seleccionando el paquete libjs-requirejs previamente no seleccionado.
Preparándose para descomprimir… / libjs-requirejs_2.3.6-1_all.deb…
Desempaquetando libjs-requirejs (2.3.6-1)…
Seleccionando el paquete libjs-mathjax no seleccionado previamente.
Preparándose para descomprimir… / libjs-mathjax_2.7.4 + dfsg-1_all.deb…
Desempaquetando libjs-mathjax (2.7.4 + dfsg-1)…
Seleccionando el paquete python-pandas-doc previamente no seleccionado.
Preparándose para descomprimir… / python-pandas-doc_0.25.3 + dfsg-7_all.deb…
Desempaquetando python-pandas-doc (0.25.3 + dfsg-7)…
Configurando fonts-mathjax (2.7.4 + dfsg-1)…
Configurando libjs-mathjax (2.7.4 + dfsg-1)…
Configurando libjs-requirejs (2.3.6-1)…
Configurando python-pandas-doc (0.25.3 + dfsg-7)…
Procesando activadores para fontconfig (2.13.1-2ubuntu3)…
A veces, se prefiere usar un administrador de paquetes de Python para instalar pandas, especialmente si desea usar la última versión de pandas. pandas se ha actualizado recientemente a la versión 1 y el del repositorio oficial de Ubuntu 20.04 sigue siendo 0.25.3.
Paso 1: instalar pip3(y Python3)
Hay dos administradores de paquetes de Python principales. El primero es el oficial llamado Pip, y otro es Conda (Anaconda o Miniconda). En caso de duda o para principiantes, el oficialpip se recomienda .
Instale Python 3 y pip para pandas
Pipes el administrador de paquetes nativo de Python. Lo usaremos para instalar pandas. Para instalar pip3, ejecute el siguiente comando. Porque pip3depende de Python 3, python3también se instalará si no está en su sistema Ubuntu 20.04.
sudo apt install python3-pip
Verá un resultado similar a la captura de pantalla a continuación. Presione «Y» para continuar. Como puede notar, también se instalará python-pip-whly python3-wheel, donde wheel es el formato de paquete integrado para Python.
Aquí está el resultado completo de la pip3instalación
vh @ varhowto-com: ~ $ sudo apt install python3-pip
Leyendo listas de paquetes… Listo
Construyendo árbol de dependencia
Leyendo información de estado… Listo
Se instalarán los siguientes paquetes adicionales:
python-pip-whl python3-rueda
Se instalarán los siguientes paquetes NUEVOS:
python-pip-whl python3-pip python3-rueda
0 actualizado, 3 recién instalados, 0 para eliminar y 49 sin actualizar.
Necesita obtener 2.053 kB de archivos.
Después de esta operación, se utilizarán 3455 kB de espacio adicional en disco.
¿Quieres continuar? [Y / n] años
Obtenga: 1 http://archive.ubuntu.com/ubuntu focal / universe amd64 python-pip-whl all 20.0.2-5ubuntu1 [1,799 kB]
Obtener: 2 http://archive.ubuntu.com/ubuntu focal / universe amd64 python3-wheel all 0.34.2-1 [23.8 kB]
Obtener: 3 http://archive.ubuntu.com/ubuntu focal / universe amd64 python3-pip all 20.0.2-5ubuntu1 [230 kB]
Obtenido 2053 kB en 1 s (2104 kB / s)
Seleccionar el paquete python-pip-w previamente no seleccionado
hl.
(Leyendo la base de datos… 273191 archivos y directorios c
instalado actualmente.)
Preparándose para descomprimir… / python-pip-whl_20.0.2-5ubunt
u1_all.deb…
Desempaquetando python-pip-whl (20.0.2-5ubuntu1)…
Seleccionar el paquete python3-whee previamente no seleccionado
l.
Preparándose para descomprimir… / python3-wheel_0.34.2-1_all.d
eb ...
Desembalaje de python3-wheel (0.34.2-1)…
Seleccionando el paquete python3-pip no seleccionado previamente.
Preparándose para descomprimir… / python3-pip_20.0.2-5ubuntu1_
all.deb…
Desempaquetando python3-pip (20.0.2-5ubuntu1)…
Configurando python3-wheel (0.34.2-1)…
Configurando python-pip-whl (20.0.2-5ubuntu1)…
Configurando python3-pip (20.0.2-5ubuntu1)…
Procesando activadores para man-db (2.9.1-1)…
[Alternativa] Instalar Conda (Anoconda / Miniconda) para pandas
Paso 2: instalar pandausando pip
Para instalar pandasdesde PyPI (pip), ejecute el siguiente comando:
pip3 install pandas
Tenga en cuenta que si ha instalado pandas usando el primer método, necesitará desinstalar pandas usando sudo apt remove python3-pandas, de lo contrario verá el resultado: «Requisito ya satisfecho: pandas en / usr / lib / python3 / dist-packages (0.25.3)» , lo que significa que no está obteniendo la última versión de pandas.
Verá la siguiente salida en su terminal. Como puede ver en la última línea, acabo de instalar pandas 1.1.0 en mi sistema operativo Ubuntu 20.04. Su número de versión puede ser mayor a medida que pandas lance nuevas versiones.
Recolectando pandas
Descargando pandas-1.1.0-cp38-cp38-manylinux1_x86_64.whl (10,3 MB)
Requisito ya satisfecho: python-dateutil> = 2.7.3 en / usr / lib / python3 / dist-packages (de pandas) (2.7.3)
Requisito ya satisfecho: pytz> = 2017.2 en / usr / lib / python3 / dist-packages (de pandas) (2019.3)
Requisito ya satisfecho: numpy> = 1.15.4 en / usr / lib / python3 / dist-packages (de pandas) (1.17.4)
Instalación de paquetes recopilados: pandas
Pandas-1.1.0 instalado con éxito
Método 3: instalar pandas con conda (Miniconda / Anaconda)
Existe otra distribución popular de paquetes de Python llamada Anaconda o Miniconda. También puedes usarlo para instalar pandas.
Anteriormente hemos escrito un tutorial para instalar Miniconda , puedes leerlo si prefieres conda o simplemente quieres aprender más. Tenga en cuenta que conda distribuye Python en sí, por lo que no usará el sistema Python y no necesitará tener instalado Python antes de instalar conda.
Para instalar pandas con conda, ejecute el siguiente comando. Cuando se le pregunte “¿Continuar ([y] / n)?”, Presione y e ingrese para continuar.
Ahora tienes pandas instalados en tu computadora con Ubuntu 20.04. ¿Cómo comprobar si los pandas están instalados correctamente? Ejecute python3y copie / pegue el siguiente código.
import pandas as pd
s = pd.Series([1, 6, 8, 10])
s
Debería poder ver algo similar a la siguiente captura de pantalla:
Aquí está el texto completo de la terminal:
(base) vh @ varhowto-com: ~ $ python3
Python 3.8.3 (predeterminado, 19 de mayo de 2020, 18:47:26)
[GCC 7.3.0] :: Anaconda, Inc. en Linux
Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.
importar pandas como pd
s = pd.Series ([1, 6, 8, 10])
s
0 1
dieciséis
2 8
3 10
dtype: int64
En este post veremos 2 programas online y sencillos para que se inicie en el diseño 3D sin tener que descargar nada. ¡No tiene excusa!, Pues empecemos por uno de los mas populares quizás por interfaz y porque detrás esta Autodesk
Tinkercad
Uno de los programas más sencillos de diseño 3D.
No se deje engañar por los colores y el aspecto infantil, puede diseñar piezas útiles para su vida diaria en las primeras horas jugueteando con Tinkercad.
Tinkercad es el software que recomendamos a los usuarios que están empezando, si no quiere usar Fusion 360 o OpenScad.
Onshape
Onshape, diseño paramétrico online, sin descargar nada, potente y muy sencillo.
Tiene un plan gratis que le permite hacer sus primeras pruebas con el diseño 3D mecánico online.
Autocad es uno de los programas de CAD, o diseño por ordenador, más populares de todos los tiempos.
Sin embargo, en los últimos años multitud de programas han aparecido para quitarle el trono, proponiendo alternativas al diseño paramétrico tanto en 3D como en 2D.
Puntos clave de Autocad
Para saber cuáles son las mejores alternativas a Autocad primero tendremos que conocer sus puntos clave.
Funcionalidades
Este software, propiedad de la marca Autodesk es una suite muy completa de CAD, tanto 2D como 3D. Posee características únicas creadas a medida para las tareas más comunes de arquitectos e ingenieros como por ejemplo:
Diseño de circuitos eléctrico
Mapeado y topología
Rasterizado
Diseño de sistemas de ventilación o irrigación
Mecánica y robótica
Además, es un software pensado para su uso de manera deslocalizada, por lo que muchas de sus funciones están disponibles a través de su versión web para que puedas trabajar desde cualquier sitio.
Precio
En cuanto a su coste, Autocad es un software que sigue el modelo de suscripción que puede ser mensual, anual o trianual. En función de la suscripción escogida el precio varía entre 279€/mes y 168€/mes, por lo que no es un software barato.
Fusion 360: nuestro favorito
Ya hemos tratado en este blog Fusion 360, recalcando cómo y por qué podemos considerar el mejor software para comenzar en el mundo del diseño 3D paramétrico. Pero Fusion no se queda ahí, siendo además de un muy buen programa para iniciarse, una excelente alternativa profesional.
En muchísimos casos podrá llevar a cabo tu proyecto usando tanto Autocad como Fusion 360, o incluso ambos ya que, al ser ambos programas de Autodesk, se pueden compartir archivos de manera sencilla. Las diferencias radican en las funcionalidades y el precio de ambos programas de CAD.
Funcionalidades
Autocad y Fusion 360 comparten muchas funcionalidades, pero hay varias exclusivas de cada uno. Mientras que Autocad tiene muchas funcionalidades orientadas a profesiones como la arquitectura, Fusion 360 está centrado de manera casi exclusiva en el diseño mecánico, por lo que es un programa muy apropiado para ingenieros.
Algunas de las principales diferencias son las siguientes:
Como puede ver Fusion 360 supera ampliamente a Autocad en algunos apartados, aunque no es un programa con tanto recorrido en arquitectura.
Precio
Fusion 360 tiene también un modelo de suscripción, aunque es muy posible que pueda obtenerlo de manera gratuita. Aquí dejamos una tabla con los precios para que puedas hacerte una idea:
Sketchup, la alternativa para arquitectos
Sketchup, el programa de google, es uno de esos programas que ha sido muy popular durante mucho tiempo. Actualmente ha quedado un poco desplazado por Fusion 360, pero aún así tiene algunos casos de uso donde es interesante.
Funcionalidades
Sketchup tiene algunas funcionalidades interesantes:
Está basado en una aplicación web, por lo que podremos modelar en cualquier sitio y almacenar nuestros modelos en la nube.
Las versiones de pago incluyen acceso al repositorio de modelos 3D conocido como 3D Warehouse. En él podremos encontrar un montón de modelos de casi cualquier temática para incorporarlos en nuestros proyectos.
Tiene disponible un enorme abanico de plugins en el repositorio conocido como Extension warehouse.
Precio
Sketchup tiene su versión gratuita, la cual está limitada en ciertos aspectos pero sigue siendo bastante funcional. Para usuarios domésticos más avanzados o usuarios profesionales, disponemos de varias alternativas de suscripción, cada una con ventajas añadidas sobre la versión gratuita.
Para usuarios domésticos avanzados tenemos los siguientes planes, que van desde el gratuito hasta el pro, con un coste de 299 dólares al año.
Para los usuarios profesionales tenemos otros planes de precio diferentes además de funcionalidades extra que no están disponibles en ninguno de los planes para usuarios domésticos.
Entre estas funcionalidades se incluyen cosas la capacidad de usar su módulo de «diseño basado en rendimiento», único de Sketchup.
Además también ofrecen planes para estudiantes con precios reducidos pero todas las funcionalidades de los modelos más profesionales.
SolidWorks, la opción más profesional
SolidWorks es un programa muy popular, orientado total y absolutamente al mercado profesional. Tanto sus prestaciones como su precio lo enmarcan claramente en la categoría de software para usuarios profesionales que necesitan diseñar modelos muy complejos y utilizar funciones avanzadas.
Funcionalidades
SolidWorks es un programa enorme, con una cantidad de funcionalidades totalmente inabarcable en un artículo como este. Para que pueda hacerse una idea de por qué elegirlo, vamos a comentar algunas de sus funcionalidades más destacadas y que más valor aportan.
Diseño generativo: Una nueva manera de diseñar, muy diferente a la experiencia clásica de diseño paramétrico CAD pero mucho más potente en ciertas circunstancias.
Oferta modular: SolidWorks es un software profesional bastante caro. Al estar orientado al mercado del diseño industrial, ofrece diversos módulos para cubrir necesidades concretas de ciertos sectores de este mercado, por lo que podremos adquirir sólo aquellos módulos que nos interesen para ajustar el precio.
Diseño de PCB: Este programa ofrece un módulo bastante completo de diseño de equipos electrónicos desde cero, incluyendo la PCB y la electrónica y también todo el resto de partes estructurales.
Simulación: SolidWorks ofrece un módulo de simulaciones, donde podremos simular ciertas condiciones en los diseños que hagamos para comprobar su viabilidad.
Manejo de modelos 3D importados: Otros programas de diseño CAD como Autocad o Fusion 360 no se llevan muy bien con diseños importados en formatos comunes como STL u OBJ, teniendo muchas dificultades para editarlos e incorporarlos en nuestros modelos. SolidWorks maneja este aspecto bastante mejor, por lo que es una excelente alternativa si vas a trabajar reutilizando modelos 3D.
Precio
SolidWorks es bastante caro !tan caro que hace que Autocad parezca barato!. Es por esto que no es un software pensado para makers, por muy pro que sean. Por el contrario, está pensado para dar un servicio excelente en industrias muy exigentes como la de la mecánica, la automoción o la armamentística.
En cuanto al precio, depende mucho de qué módulos escojamos, pero parte de unos 10.000 euros por una licencia monopuesto, pudiendo elevarse muchísimo en función de los módulos que escojamos.
Otras alternativas a Autocad
Nos hemos dejado unas cuantas opciones en el tintero, ya que no queremos hacerte pesada la lectura de estos artículos y por eso hemos escogido nuestros favoritos.
Algunas opciones adicionales que pueden ser interesantes son las siguientes:
Openscad: Un programa para diseñar en 3D utilizando programación, el cual hemos tratado muchísimas ocasiones en este blog. Extremadamente potente para profesionales con habilidades de programación que quieran aproximarse al diseño 3D. Es gratuito y de código libre
Freecad: Este programa, totalmente gratuito y de código libre, fue muy popular hace años. Ahora está un poco menos de moda pero sigue siendo una opción muy válida para el diseño mecánico. Permite ejecutar scripts en python para añadir funcionalidades.
SolidEdge: Una alternativa por parte de Siemens que incorpora muchas de las funciones de Autocad tanto para diseño 3D como para diseño 2D. Además incluye funcionalidades de softwares mucho más caros como el diseño generativo los módulos de simulación. Su precio parte de los 75 dólares al mes.
En este post se espera que ya tenga WSL configurado. Aunque el demonio de Docker no se puede ejecutar directamente en WSL, puede usar la CLI de Docker para conectarse a un demonio remoto de Docker que se ejecuta a través de Docker para Windows o cualquier otra máquina virtual que cree (en este artículo se tratan ambos métodos).
Si se pregunta «¿por qué no solo ejecutar docker.exe y docker-compose.exe de Docker para Windows directamente en WSL?», esto se debe a un error al ejecutar Docker o Docker Compose de forma interactiva en ese entorno. El TL;DR es que no se puede ejecutar nada en primer plano con el modo interactivo, lo que lo hace inutilizable para el desarrollo web real.
Pero con la CLI de Docker configurada para el host remoto de Docker para Windows es realmente impresionante! Con este método, las aplicaciones rails muy grandes responden en ~100ms (o ~5s cuando tienen que compilar más de 10.000 líneas de Javascript y SCSS). ¡Eso también es con volúmenes montados!
Utilizo esta configuración casi todos los días para las aplicaciones impulsadas por Rails, Flask, Phoenix, Node y Webpack. Es muy sólido en términos de rendimiento y fiabilidad.
Configurar Docker para Windows (Docker Desktop)
En la configuración general, querrá exponer el demonio sin TLS.
Docker para Windows se ha cambiado recientemente a Docker Desktop,por lo que si la configuración se ve ligeramente diferente de la captura de pantalla, no se preocupe. Es lo mismo.
Menciona «usar con precaución» porque cada vez que haces una conexión de red que no está encriptada, vale la pena hablar de ello, pero en este caso es completamente seguro porque nunca nos estamos conectando a ella a través de una red pública.
Esto va a permitir que la instancia WSL local se conecte localmente al demonio de Docker que se ejecuta en Docker para Windows. El tráfico ni siquiera sale de la caja de desarrollo, ya que el demonio solo está enlazado a localhostpor lo que ni siquiera otras máquinas de la red local podrán conectarse. En otras palabras, es muy seguro que estos datos se transmitan a través de texto sin formato.
También es posible que desee compartir las unidades en las que planea que resida el código fuente. Este paso no es necesario, pero mantengo mi código en un HD secundario interno, así que también compartí mi unidad «E». Si lo hace, realice la configuración «Unidades compartidas» y habilítela.
¿No puedes usar Docker para Windows?
¡Esto solo es necesario si NO está ejecutando Docker para Windows!
Querrá configurar su propia máquina virtual para ejecutar Docker. Docker Tip #73 entra en detalles sobre cómo hacerlo e incluso incluye vínculos a vídeos sobre cómo configurar la máquina virtual.
Instale Docker y Docker Compose en WSL
¡Todo el mundo puede seguir este punto!
Todavía necesitamos instalar Docker y Docker Compose dentro de WSL porque nos dará acceso a ambas aplicaciones cli. No nos molestaremos en empezar el demonio de Docker.
Las siguientes instrucciones son para Ubuntu 18.04 / 20.04, pero si utiliza una distribución WSL diferente, puede seguir la guía de instalación de Docker para su distro de los documentos de instalación de Docker.
Instalar Docker
Puede copiar / pegar todos los comandos a continuación en su terminal WSL.
Ubuntu 18.04 / 20.04 notas de instalación tomadas de la documentación de Docker:
# Update the apt package list.
sudo apt-get update -y
# Install Docker's package dependencies.
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
# Download and add Docker's official public PGP key.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Verify the fingerprint.
sudo apt-key fingerprint 0EBFCD88
# Add the `stable` channel's Docker upstream repository.
#
# If you want to live on the edge, you can change "stable" below to "test" or
# "nightly". I highly recommend sticking with stable!
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# Update the apt package list (for the new apt repo).
sudo apt-get update -y
# Install the latest version of Docker CE.
sudo apt-get install -y docker-ce
# Allow your user to access the Docker CLI without needing root access.
sudo usermod -aG docker $USER
En este punto debe cerrar el terminal y abrir uno nuevo para poder ejecutar Docker sin sudo. ¡Será mejor que lo hagas ahora!
Instalar Docker Compose
Vamos a instalar Docker Compose usando PIP en lugar del binario precompilado en GitHub porque se ejecuta un poco más rápido (ambas siguen siendo aplicaciones de Python).
# Install Python 3 and PIP.
sudo apt-get install -y python3 python3-pip
# Install Docker Compose into your user's home directory.
pip3 install --user docker-compose
El siguiente paso es asegurarse de que $HOME/.local/bin esté establecido en su $PATH.
Puede comprobar si ya está configurado ejecutando echo $PATH. Dependiendo de la distro WSL que utilice, es posible que vea o no /home/nick/.local/bin (reemplace nick por su nombre de usuario).
Si está ahí, puedes ir y puedes saltar a la siguiente sección de este post.
Si no está allí, querrá agregarlo a su $PATH. Puede hacerlo abriendo su archivo de perfil con nano ~/.profile. A continuación, en cualquier parte del archivo, en una nueva línea, agregue export PATH="$PATH:$HOME/.local/bin" y guarde el archivo.
Por último, ejecute source ~/.profile para activar el nuevo $PATH y confirmar que funciona ejecutando echo $PATH. Deberías verlo allí ahora. ¡hecho!
Configurar WSL para conectarse a Docker para Windows
El siguiente paso es configurar WSL para que sepa cómo conectarse al demonio remoto de Docker que se ejecuta en Docker para Windows (recuerde, está escuchando en el puerto 2375).
Si no usa Docker para Windows y siguió la guía de Docker Tip #73 para crear su propia máquina virtual, probablemente ya lo hizo, lo que significa que puede omitir el siguiente comando.
Conéctese a un demonio remoto de Docker con este 1 revestimiento:
Eso sólo tiene que añadir la línea de exportación a su archivo .bashrc para que esté disponible cada vez que abra su terminal. Los comandos source recargan la configuración bash para que no tengas que abrir un nuevo terminal ahora mismo para que surta efecto.
Verificar que todo funciona
# You should get a bunch of output about your Docker daemon.
# If you get a permission denied error, close + open your terminal and try again.
docker info
# You should get back your Docker Compose version.
docker-compose --version
Garantizar el trabajo de montajes por volumen
Lo último que tenemos que hacer es configurar las cosas para que el volumen funcione. Esto me tropezó por un tiempo porque echa un vistazo a esto…
Al usar WSL, Docker para Windows espera que proporcione las rutas de volumen en un formato que coincida con esto: /c/Users/nick/dev/myapp.
Pero, WSL no funciona así. En su lugar, utiliza el formato /mnt/c/Users/nick/dev/myapp Honestamente, creo que Docker debería cambiar su camino para usar /mnt/c porque está más claro sobre lo que está pasando, pero esa es una discusión para otro momento.
Para que las cosas funcionen por ahora, tiene 2 opciones. Si está ejecutando Windows 18.03 (primavera de 2018) o más nuevo, puede configurar WSL para que se monte en / en lugar de /mnt y ya está todo listo. Si tienes 17.09 (otoño de 2017) tendrás que hacer otra cosa.
Estas son las instrucciones paso a paso para ambas versiones de Windows:
¿Ejecutando Windows 10 18.03+ o Newer?
En primer lugar, abra un terminal WSL porque necesitamos ejecutar algunos comandos.
Cree y modifique el nuevo archivo de configuración WSL:
sudo nano /etc/wsl.conf
# Now make it look like this and save the file when you're done:
[automount]
root = /
options = "metadata"
Tenemos que establecer root = / porque esto hará que sus unidades montadas en /c o /e en lugar de /mnt/c o /mnt/e.
La línea options = "metadata" no es necesaria, pero corregirá los permisos de carpeta y archivo en los soportes WSL para que todo no sea 777 todo el tiempo dentro de los soportes WSL. Recomiendo encarecidamente que hagas esto!
Una vez que realice esos cambios, cierre la sesión e inicie sesión en Windows para asegurarse de que los cambios surtan efecto. Win + L no es suficiente. Tendrás que hacer un cierre de sesión en toda regla / iniciar sesión.
Si recibes un error la próxima vez que inicies tu terminal WSL no te asustes.
Es un error con 18.03 y se puede solucionar fácilmente. Pulse CTRL + Shift + ECS para abrir el administrador de tareas, vaya a la pestaña «Servicios», busque el servicio «LxssManager» y reinícielo.
Esto parece suceder sólo si cierra la sesión de Windows en lugar de hacer un reinicio completo y probablemente se corregirá en un parche futuro de 18.03+.
Una vez hecho esto, estás listo. Podrás acceder a tus monturas y funcionarán perfectamente con Docker y Docker Compose sin ningún ajuste adicional. Por ejemplo, podrás usar .:/myapp en un archivo docker-compose.yml, etc.
¿Qué emulador de terminal está utilizando?
Si usa ConEmu, entonces querrás asegurarte de actualizar a la versión alfa más reciente (al menos 18.05.06+ que puedes ver en la barra de título de la configuración). Contiene un archivo wslbridge.exe parcheado para admitir un punto de montaje raíz WSL personalizado.
El terminal WSL de Ubuntu predeterminado es compatible con esto de forma predeterminada, por lo que todos son buenos. No sé si otros terminales apoyan esto todavía. Hágamelo saber en los comentarios.
¡Ya terminaste! Puede omitir los pasos de 17.09 a continuación si siguió los pasos anteriores.
¿Ejecutando Windows 10 17.09?
En primer lugar, abra un terminal WSL porque necesitamos ejecutar algunos comandos.
Enlazar puntos de montaje personalizados para corregir las diferencias de Docker para Windows y WSL:
sudo mkdir /c
sudo mount --bind /mnt/c /c
Querrá repetir esos comandos para las unidades que compartió, como d o eetc.
Compruebe que funciona ejecutando: ls -la /c. Debería ver la misma salida exacta que la ejecución ls -la /mnt/c porque /mnt/c está montado en /c.
En este punto eres de oro. Puede utilizar rutas de montaje por volumen como .:/myapp en sus archivos de Docker Compose y todo funcionará como normal. Eso es increíble porque ese formato es lo que los usuarios nativos de Linux y MacOS también utilizan.
Vale la pena señalar que cada vez que ejecute un docker-compose up, querrá asegurarse de navegar primero a la ubicación /c/Users/nick/dev/myapp de lo contrario su volumen no funcionará. En otras palabras, nunca acceda a /mnt/c directamente.
Técnicamente se podía utilizar un enlace simbólico en lugar de un montaje de enlace, pero me han quemado en el pasado cuando se trataba de usar enlaces simbólicos y tener ciertas herramientas no funcionan porque no las siguieron correctamente. Mejor seguro que lo siento aquí.
Sin embargo, siéntase libre de utilizar enlaces simbólicos dentro de WSL para acceder a su montaje de enlace. Por ejemplo, mi carpeta Dev vive todo el camino en /e/Backup/VMs/workstation/home/nick/Dev y no hay manera en heck siempre voy a escribir eso cuando quiera acceder a mis archivos de desarrollo.
Así que dentro de WSL creé un symlink con ln -s /e/Backup/VMs/workstation/home/nick/Dev ~/Dev y ahora sólo puedo escribir cd ~/Dev para acceder a mis archivos y todo funciona.
Configure automáticamente el soporte de enlace:
Desafortunadamente tendrás que ejecutar ese comando sudo mount cada vez que abras un nuevo terminal porque WSL no admite el montaje a través de /etc/fstab todavía (editar: lo hace en 18.09+, pero si estás usando 18.09+ debes seguir los pasos de 18.03+).
Pero podemos evitar esa limitación simplemente montándola en su archivo ~/.bashrc Esto está un poco sucio, pero por lo que sé, creo que esta es la única manera de hacerlo, así que si sabes de una mejor manera, por favor hágamelo saber.
Puede hacerlo con este 1 revestimiento: echo "sudo mount --bind /mnt/c /c" >> ~/.bashrc && source ~/.bashrc y asegúrese de repetir el comando para las unidades adicionales que compartió con Docker para Windows. Por cierto, no necesitas mkdir porque ya lo hicimos.
Sí, lo sé, eso significa que usted será rápido para su contraseña raíz cada vez que abra un terminal, pero podemos evitarlo también porque Linux es genial así.
Permita que el usuario vincule un soporte sin una contraseña raíz:
Para ello, ejecute el comando sudo visudo
Eso debería abrir nano (un editor de texto). Goto la parte inferior del archivo y añadir esta línea: nick ALL=(root) NOPASSWD: /bin/mount, pero reemplace «nick» por su nombre de usuario.
Eso sólo permite a su usuario ejecutar el comando sudo mount sin tener que proporcionar una contraseña. Puede guardar el archivo con CTRL + O, confirmar y salir con CTRL + CTRL + X.
Misión completa. Todos están listos para ganar en la vida mediante Docker para Windows y WSL.
Pandas es una biblioteca de Python de código abierto que proporciona una herramienta de análisis y manipulación de datos de alto rendimiento utilizando sus poderosas estructuras de datos. El nombre Pandas se deriva de la palabra Panel Data, una econometría de datos multidimensionales.
En 2008, el desarrollador Wes McKinney comenzó a desarrollar pandas cuando necesitaba una herramienta flexible y de alto rendimiento para el análisis de datos.
Antes de Pandas, Python se usaba principalmente para la preparación y el procesamiento de datos. Contribuyó muy poco al análisis de datos. Pandas resolvió este problema. Con Pandas, podemos lograr cinco pasos típicos en el procesamiento y análisis de datos, independientemente del origen de los datos: cargar, preparar, manipular, modelar y analizar.
Python con Pandas se utiliza en una amplia gama de campos, incluidos los dominios académicos y comerciales, que incluyen finanzas, economía, estadísticas, análisis, etc.
Características clave de Pandas
Objeto DataFrame rápido y eficiente con indexación predeterminada y personalizada.
Herramientas para cargar datos en objetos de datos en memoria desde diferentes formatos de archivo.
Alineación de datos y manejo integrado de datos faltantes.
Remodelación y rotación de conjuntos de fechas.
División, indexación y subconjunto basado en etiquetas de grandes conjuntos de datos.
Las columnas de una estructura de datos se pueden eliminar o insertar.
Agrupar por datos para agregación y transformaciones.
Fusión y unión de datos de alto rendimiento.
Funcionalidad de series temporales.
1.1 ¿Cómo instalar pandas usando pip?
Si está utilizando la última versión de Pandas, ya tendrá pip instalado en su sistema. Por lo tanto, no es necesario que siga del paso 1 al 5. Para los usuarios que no tienen la última versión de Python (3.7.3), deben actualizarla.
Paso 1
Primero diríjase a https://www.python.org y haga clic en Descargas en la barra de navegación desde el
Paso 2
Asegúrese de descargar la última versión de Python . Versión 3.9.7, en este caso.
Paso 3
Al ejecutar el instalador descargado, obtendrá una nueva ventana. Haga clic en ‘ Instalar ahora ‘.
Paso 4
Después de finalizar la instalación, se recomienda elegir la opción para deshabilitar la longitud de la ruta para evitar problemas con la instalación de Python.
Paso 5
Ahora que Python está instalado, debe dirigirse a nuestra terminal o símbolo del sistema desde donde puede instalar Pandas. Así que vaya a la barra de búsqueda en su escritorio y busque cmd . Debería aparecer una aplicación llamada Símbolo del sistema . Haga clic para iniciarlo.
Menú Inicio: buscar cmd
Paso 6
Escriba el comando » administrador de instalación de pip «. Pip es un administrador de instalación de paquetes para Python y se instala junto con las nuevas distribuciones de Python.
Paso 7
Espere a que finalicen las descargas y, una vez que haya terminado, podrá ejecutar Pandas dentro de sus programas Python en Windows.
1.2. ¿Cómo instalar pandas usando Anaconda?
Se recomienda encarecidamente que los principiantes utilicen Anaconda para instalar Pandas en su sistema. Instalar Anaconda no solo es muy fácil, sino que también le brinda acceso a varias otras herramientas.
Paso 1
Dirígete a https://www.anaconda.com , una vez que estés allí, haz clic en el botón Descargar en la esquina superior derecha de la pantalla.
Paso 2
En la página de descargas, desplácese hacia abajo hasta que vea las opciones de descarga para Windows. Haga clic en el botón de descarga de Python 3.7 . Esto iniciará una descarga para el instalador de anaconda .
Paso 3
Siga las instrucciones de instalación que se muestran en las siguientes imágenes. Elija cualquier carpeta de destino según su gusto y desmarque » Agregar anaconda a mi variable de entorno PATH «.
Paso 4
Una vez finalizada la instalación, puede tener acceso a Pandas en su sistema . Anaconda instala todas las bibliotecas importantes para usted.
Paso 5
Cuaderno de Jupyter (opcional) : la mayoría de los proyectos de aprendizaje automático se tratan en los cuadernos de jupyter, por lo tanto, es importante saber cómo usarlo.
Primero, vaya a sus archivos de programa en el menú de inicio y busque “Anaconda Navigator”. Una vez que ingrese al programa, será recibido con una pantalla similar a la que se muestra a continuación. Inicie Jupyter Notebooks .
Paso 6
Una vez que haga clic en Iniciar para Jupyter Notebook, se abrirá automáticamente una ventana del navegador y mostrará la siguiente página. Haga clic en nuevo y luego en «Python 3 «
Interfaz de portátil Jupyter
Paso 7
Una vez que elija «python 3», lo llevará a una nueva pestaña, donde puede comenzar a codificar de una vez .
Debe estar conectado para enviar un comentario.