Event Location:
Microsoft - Bellevue Residences, Levent Mahallesi
Aydin Sokak No:7, Levent
Istanbul, , Turkey
Abstract:
In-Memory OLTP (code name: Hekaton) is the most important new feature in SQL Server 2014, and this session will teach you how query processing and optimization work with this new database engine. After explaining the basics, we will discuss how the query optimizer is used in In-Memory OLTP by both natively compiled stored procedures and by traditional stored procedures accessing memory-optimized tables through the query interop functionality. We will also take a look at how the new hash and range indexes are used, as well as how their performance implications are also covered along with the process of translating the plan created by the query optimizer into C code. Finally, some limitations with the current release will also be explained.
Speaker(s): Benjamin Nevarez,
Abstract:
OK, you've jumped into your Azure journey by creating your Azure SQL Database. Created your schema and filled up your data or just used import/export wizard. Then, you've plugged your application(s) to this new Azure SQL Database but something goes wrong by means of performance. It was working perfectly ok when your database was running on your on premises SQL Server. But now it does not perform very well with Azure SQL Database and your users started reporting interesting error message that you did not see before. "What could it be wrong ?" Some possible answers you may think of are : A) This Azure SQL Database thingy is not for me, I give up! B) I guess I'm missing some details If you are answering this as "B", plase come join us to learn what you could have been missing
Speaker(s): Faruk Celik,
Abstract:
Microsoft Azure SQL offers a variety of service tiers and performance levels to fit the diverse needs of database applications in the cloud. For each tire, the maximum database size is limited (up to 500GB), so when additional resources are required scaling out becomes necessary. This requires sharding, which horizontally partitions data across multiple databases. Each database in this model is referred to as a shard. Azure SQL Database supports three methods to implement sharding: Elastic Scale, Custom Sharding and Federations This talk is a comparison and overview of these approaches, to be possible to choose the best one in your practice.
Speaker(s): Mihail Mateev,
Abstract:
If you're using SQL Server 2012 or SQL Server 2014 as the database server for SharePoint 2013, you must perform particular set of steps to install SQL Server and then configure it specifically to host your SharePoint 2013 farm. In this session, we’ll walk through the installation process for SQL Server. I'll explain the post-installation configuration changes that are foreseen to SharePoint 2013. We’ll also have a look on how to configure SQL as SharePoint backups – all via PowerShell - for sure! As last point bottlenecks for HA/DR environments will be explained in a few steps. After this session you will serve admirably the database back end to your SharePoint 2013 farm.
Speaker(s): Gokan Ozcifci,
Abstract:
Performance improvement of T-SQL code is one of the most recurring topic. SQL Server provides developers with a very rich source of information to understand performance issues and bottlenecks: the plan cache. The session shows a technique for deeply exploring SQL Server plan cache, in order to identify the less performing queries by automatically analyze the XML execution plans through XQuery scripts. It shows the metrics for query plan quality evaluation, how to automatically find the most expensive plans, the less performing operators, and possible optimizations suggested directly by the engine. More in general, how to identify the most resource consuming pieces of code in order to provide the developers and DBAs with precise indications in terms of code design and maintenance. Finally, the session shows news about SQL 2014 to facilitate this approach.
Speaker(s): Saverio Lorenzini,
Abstract:
Microsoft Azure Document DB is a purpose built JSON document database that is ideal for use in developing the next generation of modern web and mobile applications. DocumentDB provides the scale and performance of benefits of a NoSQL database but without forcing developers to take a productivity hit at design time in order to use it. NoSQL databases bring the promise of near limitless scale out and improved developer productivity In this session we'll deep dive into the capabilities that set DocumentDB apart from RDBMS stores as well its NoSQL. This session will focus on the recently announced Azure Document DB service, a powerful JSON store well suited to building modern web and mobile applications and a free tour of NoSQL storage options in Microsoft Azure. Guidance on selecting the right storage will be covered through best practices.
Speaker(s): Umit Sunar,
Abstract:
Almost any database query can be written in several ways. T-SQL, as any other query language, contains many language constructions and has a lot of aspects, that can both make life easier and more complex. Under "complex life", I understand bad readability and poor performance. In this session we will consider a number of typical tasks, solved with the help of T-SQL, and will look at effective and ineffective task solutions.
Speaker(s): Denis Reznik,
Abstract:
Start with data management features available on Microsoft Azure and learn about the various options for using SQL Server in Windows Azure. Explore the differences between Azure SQL Database (PaaS) and SQL Server in infrastructure as a service (IaaS), and see how to deploy and manage both approaches.
Speaker(s): Mine Tokus,
Abstract:
Connect any source to discover and combine any data with Power Query Establish your model Analyze with Power Pivot Visualize your data to create interactive reports with Power View and gain more insights on 3D maps with Power Map Share your reports, create Collaborative BI sites, ask Qs and get As with Power BI for Office 365
Speaker(s): Mustafa Acungil,
Abstract:
In this session we will go through the topics of performance, scalability and availbility - the 3 core topics that every DBA needs to know. Performance is at the core and required for every database application (small or mission-critical). In this talk we will go through the concepts, tools and procedures that will help you in monitoring and start fine-tuning the performance or find the root-cause on your data platform. The subject covered here is excerpted from my book "Microsoft SQL Server 2008 R2 Administration cookbook". This will also be an ideal beginning for any IT person who is willing step-into DBA world.
Speaker(s): Satya Jayanty,
Abstract:
Nowadays there is no meaning : Big Data if you are digging. The important thing is how can we find a benefits of our business strategy using our structured or non-structured data. Predictive modelling is based on statistical algorithms and usually that can be difficult situations for Developers. Azure Machine Learning that is the new products to build predictive Data Mining models easily. In this session we create an Azure, Azure Machine Learning systems and show how can we generate statistical predictive models using SQL Server Data and HDInsight. On the other hand we'll show real samples to real business to understand benefits of our business.
Speaker(s): Koray Kocabas,
Abstract:
Start with Column Store Index concept which is a new feature coming with SQL 2012. Explain the architecture of CSI and the workload types fit with CSI. Explore the new great enhancements in SQL 2014 with useful demos by comparing the results with traditional and column store indexes.
Speaker(s): Işıl Efe,
Abstract:
In this demo-packed session, you will learn how reads/writes work in SQL Server and you will be able to prove whether the storage is the biggest bottleneck or not!
Speaker(s): Yigit Aktan,
Abstract:
This session will show in practice how to make customer segmentation using SQL Server Analysis services. By using algorithms for segmentation available in Analysis services, we will create segments and statistically test segments (clusters). Goal of this session is to show how to deploy customer segmentation using data mining in SSAS and what are the practical needs for people working with BI and in Marketing.
Speaker(s): Tomaž Kaštrun,
Abstract:
We are going to examine a variety of oopsies MANY developers fall prey too - some obvious, some pretty subtle and some down right sneaky! Lots of code examples with the bad AND good code presented. I GUARANTEE that you will find things here that will either prevent you from getting bad data, throwing unwanted errors or vastly improving your database application's performance. I have given this talk over SEVENTY times now and it is always very highly rated!
Speaker(s): Kevin Boles,
Abstract:
This session will discuss architecture differences between SQL Server Analytics Platform System (APS) vs SQL Server 201x in terms of data warehouse implementations. It will discuss transitioning from SMP to MPP, the why and the how. Session will also discuss managing “Data Lakes” with Hadoop integration. There will be demos to show the concepts in real life implementations.
Speaker(s): Serdar Altug,
Abstract:
Data Quality Services (DQS/ new since SQL Server 2012) include Domain Management, Knowledge Discovery and Matching Policies. The session gives an introduction to each of the three parts and shows the preconditions, the configuration and the implementation in the workflow. The improvement of the DataQuality can be seen as the result.
Speaker(s): Alexander Karl,
Abstract:
Latches are lightweight synchronization primitives that are used by the SQL Server engine to guarantee consistency of in-memory structures including; index, data pages and internal structures such as non-leaf pages in a B-Tree. Latch contention occurs when multiple threads concurrently attempt to acquire incompatible latches to the same in-memory structure. In this session, you will learn what SQL Server Latch Contention is and how to diagnose it. The session will also cover the common application designs and access patterns lead to latch contention and what the possible workarounds are.
Speaker(s): Turgay Sahtiyan,
Abstract:
Abstract: This session will cover presentation of the capabilities of the data visualization with Reporting Services, Self-Service BI with Report Builder and Self-Service BI with PowerPivot for Excel. Data source sample will be RDBMS, Data Warehouse and a CSV file.
Speaker(s): Belkis Ozhorasan,
Abstract:
Over the course of this session, you will see the improvements that Microsoft has made in the SharePoint 2013 stack to take this new focus from being a nice idea to a truly powerful reality. We will explore the improvements made to Excel, PowerPivot, Power View, PowerQuery and PowerMap. We will explain the underlying technology that makes the new features possible and walk through demos of some of the shinier toys. At the end of the session, you will walk away with a better understanding of what is new in 2013 for business intelligence and an extreme desire to build reusable data model that will undoubtedly bring real value to your business.
Speaker(s): Burak Tufanoglu,
Abstract:
I am sure you all know that troubleshooting problems related to locking and blocking (hey, sometimes there are deadlocks too) can be a real nightmare! In this session, you will be able to see and understand why and how locking actually works, what problems it causes and how can we use isolation levels and various other techniques to resolve them!
Speaker(s): Boris Hristov,
Abstract:
Today almost all of the business applications/databases need High Availability and Disaster Recovery solutions for uninterrupted service continuity. In this session we'll have a look at High Availability and Disaster Recovery (HA/DR) Solutions of SQL Server 2014.
Speaker(s): Levent Oktar,
Abstract:
Session on backup to Azure feature (manual and managed) in SQL Server 2014 to provide a cost effective DR and best practices around the same
Speaker(s): Chandra Mohan Situmalli,
Abstract:
Configuring SQL Server Extended Events in terms of the data load Importing data to SQL Server Analyzing data for Expensive Queries, Adhoc queries, wait statistics If extended events is still heavy to run in production environment, discussion on alternative method
Speaker(s): Batuhan Yildiz,
Abstract:
In this session we will cover how Windows Functions works and explain how they can help-us to write better. Also we describe the improvements in Windows Functions T-SQL support from SQL Server 2005 through SQL Server 2014.
Speaker(s): Ismail Adar,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
Contact: http://blogs.msdn.com/b/batuhanyildiz/
I started in Microsoft in 2004. I have been consulting SQL Server for 15 years. I am one of the leads for SQL Server in EMEA and working on the SQL Server training preparation world wide. My main area in SQL Server is SQL Server core including performance troubleshooting, high availability solutions, administration, migration, disaster recovery.
Before Microsoft Levent has worked for several Microsoft Partners and Government Offices as Database Administrator and Systems Engineer. He has worked on Database Migration Projects, SQL Server Database Systems Design and Architecture and HA/DR Projects for Government Offices. He#39;s been working at Microsoft Customer Services and Support Team as Support Engineer and Senior Premier Field Engineer since 2010.
Contact: http://www.benjaminnevarez.com/
Benjamin Nevarez is a SQL Server MVP and independent consultant based in Los Angeles, California who specializes in SQL Server query tuning and optimization. He is the author of “SQL Server 2014 Query Tuning Optimization”, “Inside the SQL Server Query Optimizer” and has contributed to other SQL Server books including “SQL Server 2012 Internals”. Benjamin has also been a speaker at many SQL Server conferences, including the PASS Summit, SQL Server Connections and SQLBits.
LinkedIn: https://www.linkedin.com/in/farukc
Contact: http://blogs.msdn.com/farukcelik
Faruk is working as Senior Support Escalation Engineer in Microsoft Support SQL BI team since 2006. He's expert on Data Access layer components and technologies developed by Microsoft.
Contact: http://gokan.ms
Gokan Ozcifci, consultant principal et fondateur de la soci#233;t#233; Neoxy. Gokan est membre ex#233;cutif la communaut#233; francophone sur le TechNet Wiki, r#233;dacteur de blogs et mod#233;rateur sur forums SharePoint depuis plus de 4 ans. Il a #233;galement particip#233; avec les membres communautaires de Microsoft US pour la cr#233;ation de l#39;#233;quipe TAT. Gokan est #233;galement un MVP SharePoint, reconnu pour ses blogs SharePoint, scripts et repr#233;sentation de SharePoint au Conseil de TechNet Wiki.
LinkedIn: https://tr.linkedin.com/in/yigitaktan
Contact: http://www.yigitaktan.com
Yigit Aktan is a founder and principal consultant of DataDynamic and he has been working in the IT industry since 2000. He specializes in HA amp; DR solutions, performance tuning and optimization of database systems with a focus on scalable, performing and secure deployments. He has been using SQL Server since version 2000. He is president of the PASS Turkey and a SQLSaturday organizer. He has been awarded as SQL Server MVP since 2012. He is a regular speaker at the SQL Server related events.
LinkedIn: http://tr.linkedin.com/pub/turgay-sahtiyan/15/b46/682
Contact: http://www.turgaysahtiyan.com/
Turgay Sahtiyan has been working in IT industry over a decade and he currently works as a PMC (Premier Mission Critical) Solution Engineer at Microsoft.He is based in Turkey and primarily giving proactive and reactive services with solution based approach to top enterprise customer in the MEA region.Before joined to Microsoft, he was one of the SQL Server MVP in Turkey,in addition he is founder and former president of SQLPass Turkey Chapter.(Detailed BIO http://www.turgaysahtiyan.com/about.aspx)
Saverio Lorenzini is a Principal Engineer at the Premier Field Engineering division in Microsoft Italy. He has a master degree in Computer Science Engineering from University of Pisa, and joined Microsoft in 1998, where he started to work on SQL Server from version 7.0. He started supporting customers and projects on data platform Microsoft technologies: SQL, SSIS and Reporting Services up to solutions development on SQL/.NET platform.
LinkedIn: http://www.linkedin.com/pub/mihail-mateev/1/6b3/4b1
Contact: https://mmateev.wordpress.com/
Mihail Mateev is a technical consultant, community enthusiast, PASS Regional Mentor for CEE, chapter lead, Microsoft Azure MVP, Microsoft Regional Director. He works as a Senior Solutions Architect at EPAM Systems, focused on Data Platform, IoT and cloud related solutions. He also worked many years like a Technical evangelist in the Infragistics. Last years Mihail was focused on various areas related to technology Microsoft: Data Platform, Visual Studio, ASP.Net, Windows client apps, Data Platform, and Microsoft Azure. Michael also has a PhD in cloud computing area. He is a university lecturer on Smart Homes and Smart Energy IoT Solutions.
Tufanoglu has graduated from Computer Engineering Department of Marmara University in 2009. While he was student, has started to work as Business Intelligence Consultant in 2008. Since 2011 he is working for TCM (Teknoloji Çözümleri Merkezi ) as Business Intelligence Team Leader and take part in works actively including datawarehouse designing, data architecture, consultancy of Microsoft business intelligence suites and development.
-
Alexander Karl is database-developer and certified MCT for Windows and SQL Server with .net-CDE GmbH. For more than 18 years he has been working with Database-, Datawarehouse- and Reporting-Solutions for companies from medium-sized enterprises to Group level. His spectrum includes Serversizing, Programming to optimize performances as well as Report- and Chartdesign; in trainings and seminars he conveys participants well-founded theoretical knowledge complemented with his practical.
LinkedIn: http://www.linkedin.com/tomaz.kastrun
Contact: http://www.tomaztsql.wordpress.com
Tomaž Kaštrun is BI developer and data analyst. His main focus are data mining, T-SQL development, programming and query optimization. He has been working with SQL server since version 2000. He is Microsoft Certified Professional, Microsoft MVP for data platform and Microsoft trainer.
Işıl Efe has been working for Microsoft Turkey for more than 6 years as a senior SQL Server Premier Field Engineer. Her main expertise has been on SQL Server Core, but for more than a year she is very interested in Cloud Analytics and working on PowerBI, HDInsight and Machine Learning. She has delivered many workshops, techbriefs, webcasts to customers and also partners and also delivered two sessions @SQLSaturday İstanbul for the last two years.
LinkedIn: http://www.linkedin.com/in/thesqlguru
Kevin Boles is a SQL Server expert, working exclusively with the product since v6.5. With over 25 years of database experience and over 45,000 man hours of SQL Server engine experience, he holds many related certifications, is an MCT and was a SQL Server MVP from 2007 to 2012. Kevin has been a very successful independent consultant for over 20 years. His passion is the relational engine, especially designing, building, analyzing and tuning high-performance database applications.
LinkedIn: http://bg.linkedin.com/in/borishristov
Contact: http://borishristov.com/blog/
Boris is a SQL Server Consultant, but also an Author for Pluralsight and a SQL Server MVP. He is frequently speaking at conferences all accross Europe and is heavily involved in training students and organizations in what he calls quot;The Art of SQL Serverquot;. Boris is frequently blogging and is the host of SQLHangouts.
LinkedIn: https://uk.linkedin.com/sqlmaster
Contact: http://www.sqlserver-qa.net
My experience surrounded with high focus on the data platform with a track record of defining strategy, designing and delivering digital transformation migrations with major enhancements to current working methods. Worked in a capacity of Head of Data Engineering, Enterprise Data Architect and Solutions Key career accomplishment recognition as an industry expert technical excellence from the Microsoft as Data Platform Most Valuable Professional (MVP) recognition since the year 2006 (13 years as MVP and counting), which recognizes exceptional technical community leaders worldwide who actively deliver, present share their extraordinary contributions, high quality, and real-world expertise. Twitter pod (http://twitter.com/sqlmast
Graduated from Hacettpe University Computer Science (Ankara - Turkey) department at 2004 and had master degree from Middle East Technical University on Software Engineering. Mine has 10 years experience on software development and testing, first on aerospace industry (Boeing) and then on Microsoft. She joined Microsoft on 2010 as a Software Design Engineer in Test for SQL Server group in Redmond USA. She participated development of various features for SQL Server 2012 and SQL Server 2014.
Contact: http://www.data-dynamic.com
After I graduated Technical University (Statistics programme), I worked at Fujitsu Siemens Computers, Mavi, Project House HAVAS that i developed Business Intelligence Projects. Now I#39;m working at yemeksepeti.com that is a one of the biggest e-commerce company in Turkey as Senior Business Intelligence Developer.By the way I#39;m a periodical teacher at Bahcesehir University (MIS Master Programme) about Business Intelligence using Microsoft SQL Server. I awarded as SQL Server MVP in 2014,2015
Contact: http://ismailadar.com
Ismail Adar, Computer Engineer, Microsoft Certified Trainer, MCSE and MCSA. Focused on the SQL Server relational engine at performance troubleshooting, OLTP scalability and defining and implementing reliable high availability environments. Also Author of quot;SQL Server 2012 Programming and Administrationquot; and quot;Data Warehouse Desing with SQL Server Interation Servicequot;
-
LinkedIn: https://ae.linkedin.com/in/umitsunar
Umit Sunar has been working in IT Industry since 2000 and he is currently working as Cloud Solution Architect (Azure) at Microsoft MEA HQ. Based in Dubai and traveling a lot for business and entertainment. Formerly, he is an aeronautics engineer originally supposed to build airplanes. In technical keywords, he received his first development certificate from Borland at 1992 and continued development in many platforms including C, PHP, Pascal Fortran, Python, Java, C#, Node.js and maybe couple more that he forgot writing this. He is passionate about Cloud Computing for 8+ years and even created a small cloud environment in 2008 He doesn’t like the word “geek” but likes a lot traveling, cooking and smiling.
Been working as a Senior Support Engineer in Microsoft and currently working as a Senior Premier Field Engineer
LinkedIn: http://www.linkedin.com/pub/denis-reznik/3/502/234
Contact: http://reznik.uneta.com.ua
Denis Reznik is a Data Architect at Intapp, Inc. He has more than ten years experience in software development, database design, and performance tuning for cloud and on-premises solutions. In 2010 Denis became Microsoft Data Platform MVP and maintains MVP status today. Apart from his professional career, Denis actively participates in the development of the Ukrainian Data Community.
LinkedIn: https://www.linkedin.com/in/acungil/
Contact: https://www.linkedin.com/today/author/acungil
Mustafa Acungil had been working on data since 2001. He is an expert on SQL Server, Business Intelligence, and Machine Learning. As a trainer, consultant, and manager he has been working in Bilgeadam for more than 10 years. He is also a writer and last title he has published is 24 Kariyer Tuzağı. (http://www.dr.com.tr/Kitap/24-Kariyer-Tuzagi/Egitim-Basvuru/Is-Ekonomi-Hukuk/Yonetim-Is-Gelistirme-Kalite/urunno=0001693784001)
The following is a list of sponsors that helped fund the event.


--- title: Crystal Symmetries sidebar: documentation_sidebar permalink: CrystalSymmetries.html folder: documentation toc: false ---
Crystal symmetries are a sets of rotations and mirroring operations that leave the lattice of a crystal invariant. They form so called groups since the concatenation of two symmetry operations is again a symmetry operation.
Depending which symmetry operations are coonsidered the symmetry groups are categorized either into 230 space groups, 32 point groups or 11 Laue groups.
There exist exactly 11 symmetry groups consisting of proper rotations only, namely, 1, 2, 222, 3, 23, 4, 422, 6, 622, 32, 432. These are the so called enatiomorphic groups. All the groups can be defined in MTEX either by its international notation
{% highlight matlab %} cs = crystalSymmetry('432') {% endhighlight %} {% highlight plaintext %} cs = crystalSymmetry symmetry: 432 elements: 24 a, b, c : 1, 1, 1 {% endhighlight %}or by the Schoenflies notation
{% highlight matlab %} cs = crystalSymmetry('O') plot(cs) {% endhighlight %} {% highlight plaintext %} cs = crystalSymmetry symmetry: 432 elements: 24 a, b, c : 1, 1, 1 {% endhighlight %}For any symmetry group we obtain the corresponding Laue group by adding the inversion as an additional symmetry element.
{% highlight matlab %} csLaue = union(cs,rotation.inversion) plot(csLaue) {% endhighlight %} {% highlight plaintext %} csLaue = crystalSymmetry symmetry: m-3m elements: 48 a, b, c : 1, 1, 1 {% endhighlight %}More directly, the Laue group corresponding to an arbitrary point group can be defined by the command
{% highlight matlab %} cs.Laue {% endhighlight %} {% highlight plaintext %} ans = crystalSymmetry symmetry: m-3m elements: 48 a, b, c : 1, 1, 1 {% endhighlight %}Since all Laue groups can be derived from the 11 enantiomorphic groups there are also 11 Laue groups, namely -1, 2/m, mmm, -3, -3m, -4/m, 4/mmm, 6/m, 6/mmm, m-3, m-3m.
The Laue groups have always exactly twice as many symmetry elements as the corresponding enantiomorphic group. As the following example illustrates each symmetry element from the enantiomorphic group occurs two times - with and without inversion - in the corresponding Laue group.
{% highlight matlab %} cs = crystalSymmetry('222'); rotation(cs) rotation(cs.Laue) {% endhighlight %} {% highlight plaintext %} ans = rotation size: 2 x 2 Bunge Euler angles in degree phi1 Phi phi2 0 0 0 45 180 45 180 0 0 45 180 225 ans = rotation size: 4 x 2 Bunge Euler angles in degree phi1 Phi phi2 Inv. 0 0 0 0 45 180 45 0 180 0 0 0 45 180 225 0 0 0 0 1 45 180 45 1 180 0 0 1 45 180 225 1 {% endhighlight %}While the enantiomorphic groups contain exclusivly proper rotations and Laue groups contain a proper and an improper version of each rotation, there are also symmetry groups with improper rotations that do not contain the inversion, e.g. the point group mm2
{% highlight matlab %} cs = crystalSymmetry('mm2') rotation(cs) plot(cs) {% endhighlight %} {% highlight plaintext %} cs = crystalSymmetry symmetry: mm2 elements: 4 a, b, c : 1, 1, 1 ans = rotation size: 2 x 2 Bunge Euler angles in degree phi1 Phi phi2 Inv. 0 0 0 0 45 180 45 1 180 0 0 0 45 180 225 1 {% endhighlight %}We observe that mm2 has exactly the same rotations as 222 with the only difference that half of them are improper. In fact, we can derive all remaining 10 point groups by replacing half of the rotations of a enantiomorphic group by its improper version. This way the following point groups can be constructed: m, mm2, 3m, -4, 4m2, -42m, -6, 6mm, -6m2, -43m. In total this gives us 11 enantiomorphic + 11 Laue + 10 mixed = 32 point groups.
In MTEX we may use the following commands to find the corresponding enantiomorphic group and the corresponding Laue group to any mixed group
{% highlight matlab %} cs = crystalSymmetry('-4m2') mtexFigure('layout',[1 3]); plot(cs) mtexTitle(char(cs,'LaTex')) nextAxis plot(cs.properGroup) mtexTitle(char(cs.properGroup,'LaTex')) nextAxis plot(cs.Laue) mtexTitle(char(cs.Laue,'LaTex')) {% endhighlight %} {% highlight plaintext %} cs = crystalSymmetry symmetry: -4m2 elements: 8 a, b, c : 1, 1, 1 {% endhighlight %}The enantiomorphic group of a given point group is in general not an subgroup, i.e., it does contain symmetry elements that do not belong to the original point group. If one is interested in the subgroup of proper rotations of a given point group the following command comes into help
{% highlight matlab %} plot(cs.properSubGroup) mtexTitle(char(cs.properSubGroup,'LaTex')) {% endhighlight %}Although in general only 32 point groups are distingished, some of them allow for different alignments of the symmetry operations with respect to the crystal axes. The following plots show three different alignments of the point group 2mm. Note that the a-axis points in all three case towards south.
{% highlight matlab %} mtexFigure('layout',[1 3]); cs = crystalSymmetry('2mm'); plot(cs) mtexTitle(char(cs,'LaTex')) annotate(cs.aAxis,'labeled') nextAxis cs = crystalSymmetry('m2m'); plot(cs) mtexTitle(char(cs,'LaTex')) annotate(cs.aAxis,'labeled') nextAxis cs = crystalSymmetry('mm2'); plot(cs) mtexTitle(char(cs,'LaTex')) annotate(cs.aAxis,'labeled') {% endhighlight %}Similarly as with mm2, there are different alignements for the point groups 112, 121, 211, 11m, 1m1, m11, 321, 312, 3m1, 31m, etc.
If additionally to the proper and improper rotations also translations are considered as symmetry operations the number of different symmetry groups increases to 320. Those are exhaustivly described in the international table of crystallography.
MTEX currently does not support space groups. If the name of a space group os passed to the command crystalSymmetry, MTEX automatically determines the corresponding point group and assigns it to the variable.
{% highlight matlab %} cs = crystalSymmetry('Td'); plot(cs) {% endhighlight %}Using the commands union and disjoint new symmetries can be computed from two given ones
{% highlight matlab %} union(crystalSymmetry('23'),crystalSymmetry('4')) disjoint(crystalSymmetry('432'),crystalSymmetry('622')) {% endhighlight %} {% highlight plaintext %} ans = crystalSymmetry symmetry: 432 elements: 24 a, b, c : 1, 1, 1 ans = crystalSymmetry symmetry: 222 elements: 4 a, b, c : 1, 1, 1 {% endhighlight %}MTEX allows to define a crystal symmetry by importing a crystallographic information file (*.cif)
{% highlight matlab %} cs = crystalSymmetry.load('quartz') {% endhighlight %} {% highlight plaintext %} cs = crystalSymmetry mineral : Quartz symmetry : 321 elements : 6 a, b, c : 4.9, 4.9, 5.4 reference frame: X||a*, Y||b, Z||c* {% endhighlight %}or a Bruker phl file. As a phl file contains usually many phases the output is a list of crystal symmetries
{% highlight matlab %} % import a list of crystal symmetries cs_list = crystalSymmetry.load('crystal.phl'); % access the first symmetry in list cs_list{1} {% endhighlight %} {% highlight plaintext %} ans = crystalSymmetry mineral : Magnetite symmetry: m-3m elements: 48 a, b, c : 8.4, 8.4, 8.4 {% endhighlight %}


Lions
The Warhost ❦
About Us
The Warhost
Portrait Gallery
Groups of the Warhost
The Temple of Law
Albion Patriot
Map of Albion
Command Team


You can now email me at<EMAIL_ADDRESS>From Mrs.Diana Jose Cesar
Hello my dear friend,
Forgive my indignation if this message comes to you as a surprise and may offend your personality for contacting you without your prior consent and writing through this channel.I got your contact from searching for a reliable and honest person that will assist me safeguard fund.Divinely inspired to pick your name among other names found after series of prayers/fasting for Gods direction.I am Mrs.Susan Wright Jose Ceasar.person from South Africa undergoing medical treatment.I was married to
Dr.Jose Wright Ceasar who worked with Malaysia embassy in South Africa for nine years before he died in the year 2000.We were married for twenty years without a child. He died after a brief illness that lasted for only four days. Before his death we were both born again Christians.
Since his death I decided not to re-marry or get a child outside my matrimonial home.When my late husband was alive he deposited the sum of $10.6 (Ten Million six hundred thousand U.S.Dollars)with one finance/security company in EUROPE.
Presently,this money is still with the Security Company.Recently,my Doctor told me that I have six months to live as I am terminally ill with cancer.Though what disturbs me most is my partial paralysis.Having known my condition I decided to donate this fund to a church/mosque or better still a Christian/Moslem individual that will
utilize this money the way I am going to instruct here in.I want a church/Mosque or individual that will use this to fund churches/Mosq
ue,Orphanages and widows propagating the word of God and to ensure that the house of God is maintained.They said blessed is the hand that giveth.I took this decision because I don't have any child that will inherit this money and my husband's relatives are not Christians and I don't want my husband's hard earned money to be mis-used by unbelievers.I don't want a situation where this money will be used in an ungodly manner,hence the reason for taking this bold decision. I am not afraid of death hence I know where I am going. I know that I am going to be in the bossom of God.If you will be of assistance,I will surely appreciate and reward you for your kindness in rendering help to a dying woman.
Mrs Susa Wright Jose Cesar.
<EMAIL_ADDRESS>- susanjose ceasar


{% include projects_head-en.html %}
{% include headerpage-en.html %} {% include footer-en.html %} {% include js.html %}


The REST API allows programmatic access to read oaDOI's data. It's free and open for anyone to use.
Just please send ?email=YOUREMAIL
in your reqeusts so we can get in touch if something
breaks, and so we can report usage to our funders :). The rate limit is 10k requests per day, but
get in touch if you need more and we'll hook you up.
This is handy for testing because you can run it in your browser.


Clinque1660.github.io
Welcome to the rigpix database A multi-gigabyte source of information and pictures of radios, accessories and more This is the original , officially online since 2000, on a mission to preserve the ham radio heritage.
Marion Schlotmann is on Facebook. Join Facebook to connect with Marion Schlotmann and others you may know. Facebook gives people the power to share. The Mil Mi-24 ( Russian : Миль Ми-24 ; NATO reporting name : Hind ) is a large helicopter gunship , attack helicopter and low-capacity troop transport with room for eight passengers. It is produced by Mil Moscow Helicopter Plant and has been operated since 1972 by the Soviet Air Force and its successors, along with more than 30 other nations. Topic: Problem mit Hercules MK4 - Treiber nicht gefunden/nicht installiert!
Ти си Варна / брой 18 by TisiVarna - Issuu. The submitted article is devoted to studying the life priorities of the politically active youth, acting within the formalized legal structures in modern Russia. Genetic variation and population structure of the Pacific. Downloads - Falcon 4.0 manual - F-16.net. ISO/IEC 646 is the name of a set of ISO standards, described as Information technology — ISO 7-bit coded character set for information interchange and developed in cooperation with ASCII at least since 1964. Since its first edition in 1967 it has specified a 7-bit character code from which several national standards are derived. U.S. Copyright Office Section 115 Electronic - Notice of Intention to Obtain a Compulsory License for Making and Distributing Phonorecords 201.18(d)(1). Soviet partisans Military Wiki FANDOM powered by Wikia.
School Students and Computer Games with Screen Violence. 2015.5 Citroën C4 - Betriebsanleitung (in German) ManualsLib - Makes it easy to find manuals online. The population structure of Pacific cod Gadus macrocephalus in the southern part of the range and adjacent regions is studied on the basis of the results of microsatellite analyses.
US20040138351A1 - Flame retardant compositions - Google Patents. The Soviet partisans were members of a resistance movement which fought a guerrilla war against the Axis occupation of the Soviet Union during World War II. The movement was coordinated and controlled by the Soviet government and modeled on that of the Red Army. The primary objective Motorradteile-ellwangen eBay Stores.
RU2561179C1 - Протектор шины с - Google Patents. Handbücher Briggs amp; Stratton. A qualified repair shop or person of the owner s choosing may maintain, replace, or repair emission control devices and systems with original or equivalent replacement parts. However, warranty, recall and all other services paid for by John Deere must be performed at an authorized John Deere service center.
Traffics - Watch Full Movie Online Early Man (2018).
Auto-Handbücher Select Make Hyundai KIA Toyota Peugeot Nissan Citroën BMW Ford Volvo Mazda Volkswagen Jeep Honda Mitsubishi Subaru Renault Lexus Dodge Fiat Škoda Chrysler Opel Seat Lincoln Mercury RAM Infiniti Alfa Romeo MINI Suzuki Acura Tesla Porsche Oldsmobile Genesis Land Rover SsangYong. Zebra OneCare support service agreements allow you to plan and budget annual service needs, increase uptime, and realize a comprehensive offering of service options. Select the coverage plan that best suits the needs of your business. A complete coverage of the original Falcon 4.0 flightsim with in depth descriptions of every available system. A must for every Falcon Why is my media on this page? For this and other questions, please VIRTUAL DJ SOFTWARE - Problem mit Hercules MK4 - Treiber.
Movie ‚Early Man was released in January 26, 2018 in genre Family. Nick Park was directed this movie and starring by Eddie Redmayne. This movie tell story about Set at the dawn of time, when dinosaurs and woolly mammoths roamed the earth, Early Man tells the story of how one plucky caveman unites his tribe against a mighty enemy and saves
ManualsLib is here to help you save time spent on searching. Our database consists of more than 3029854 pdf files and becomes bigger every day! Just enter the keywords in the search field and find what you are looking for! Search results include manual name, description, size and number of pages.  Hercules 18-М-0018 Handbücher.
Изобретение относится к конструкции протектора автомобильной шины. Протектор шины имеет один или большее количество повторяющихся шагов, причем каждый повторяющийся шаг содержит отдельные шаги, имеющие блоки. In computing, a hardware code page ( HWCP ) refers to a code page supported natively by a hardware device such as a display adapter or printer The glyphs to present the characters are stored in the alphanumeric character generator s resident read-only memory (like ROM or flash) and are thus not user-changeable. Issuu is a digital publishing platform that makes it simple to publish magazines, catalogs, newspapers, books, and more online.  User:OgreBot/Uploads by new users/2014 October 03 18:00. Motorradteile und Zubehör, incl. Ankauf von Zweirädern mit Motorschaden, Unfallschaden oder ohne TÜV, mit Abholservice. Gebraucht, in Teilen, Yamaha, Suzuki, Honda.


TInF - Turbulence Inflow Tool¶
Jiawei Wan 1, Peter Mackenzie-Helnwein 2
softwarename: Turbulence Inflow Tool
softwareversion: 1.0.2
About TInF¶
The intended audience for this tool is researchers and practitioners interested in predicting the response of a structure to wind events.
The Turbulence Inflow Tool (TInF) is designed to collect all required properties and parameters needed for various turbulence inflow models in OpenFOAM, and to augment an existing wind-around-a-building model by adding the necessary sections to respective parameter definition files.
This document covers Version getsoftwareversion{} of the tool. Users are encouraged to comment on what additional features and capabilities they would like to see in this application. These requests and feedback can be submitted through an anonymous insertsurveylink{user survey}; we greatly appreciate any input you have. If there are features you want, chances are many of your colleagues also would benefit from them. Users are encouraged to review Chapter Requirements to see what features are planned for this application. Users are encouraged to comment on what additional features and capabilities they would like to see in future versions of the application through the Message Board.
Acknowledgments¶
This material is based upon work supported by the National Science Foundation under Grant No. 1612843. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.


Leave Bridge Return to Bridge
Bridge Status: {{bridgeStatus}}
Speed: {{speed}}
Alert Condition: {{alertCondition}}


GET TO KNOW US
Our Focus
At Mikvau, we believe that a home is more than just a place to live, it's a reflection of your unique style.
 Our friendly, knowledgeable,
Nigeria-based experts are available to answer your questions by phone, email, or chat and
help you find everything you need for your home. They're trained in every home improvement category — from plumbing and lighting,
to hardware and appliances, so no matter how complex your project, you can be confident that you're choosing the right products — the first time.
Our Promise
Mikvau team is committed to helping our customers make every project a success. Our mission is to simplify
home improvement by providing a world-class shopping experience, the best selection of products from top brands, and exceptional
customer service. Build with Mikvau has access
to the strongest distribution network world wide, so we can get you what you need, when you need it.
Connect With US


Select Top Variables:
Select Bottom Variables:
f.visibility() =
Y-Min: Y-Max:Zoom operations:
Synchronize what?
g.visibility() =


papert―logo in your browser
Your browser doesn't support canvas tags. Please upgrade to a recent version of Firefox or Opera.


ServerBuilder
It's a simple NodeJS/Express server builder allowing you to get a working server up in just a few lines.
Install
To install it you need to execute the following:
npm i serverbuilder
Note: Don't forget to use -g
, --save
, --save-dev
if appropriate.
Usage
const app = require('express')(), Server = require('serverbuilder');
let options = {
name: 'My Server',
useHttps: false,
//securityOptions: {} (not needed since HTTPS isn't enabled)
callback(server) {
app.set('port', server.port);
},
publicIP: true
};
new Server(app, process.env.PORT || 3e3, options);
Contribution
If you discover bugs, errors or/and have suggestions/feedback please create an issue or/and submit a PR.
If you want to contribute, make sure you stick with the coding style that ESLint is enforcing (cf. configuration file). To check if a file stick to the standards:
eslint -c ./config/.eslintrc.js yourFile.js
#Or `npm lint` if appropriate
To fix formatting errors and such, run:
Same as above but with --fix
at the end.
License
MIT


Installation¶
On this subsection will be shown all necessary steps to get Vision Module’s enviroment set in order to run/develop code.
Installing Ubuntu¶
- First of all, we need to install Ubuntu [1]:
- Download Ubuntu from official website
- Burn the .iso image either in a CD-ROM, DVD-ROM or flash drive. If you decide to use the flash drive approach, take a look in this tutorial on how to create a bootable USB stick on Windows.
- Put the media in your computer and check whether the device comes first in the BIOS boot order. Take a look in this tutorial to learn how to change the boot order.
- The Ubuntu installation script must have initialized. Choose the preferred language, mark to download updates while installing and install third-party software and to erase the current disk. You may also manually create partitions and allocate space in disk according to your preferences.
- The installation will also require you geographic location and keyboard layout. The keyboard layout need not be the same as the selected language. For instance, if you bought your laptop in the United States, the preferred language may be Brazilian Portuguese and the keyboard layout English (US, alternative international) to allow typing accents.
- Afterwards, the installation will ask your name, the computer’s name (for network identification), an username and password. Do not forget this password, since it will also be the superuser password (unless changed).
- Finally, Ubuntu will be installed. This step requires to reboot the machine when finished.
- Update all packages to its last version. You can either use the Update Manager or the commands sudo apt-get update and sudo apt-get upgrade.
Installing ROS [2]¶
Add the ROS Debian packages source for Ubuntu 16.04.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Setup keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Update apt-get
sudo apt-get update
Install ROS Kinetic full
sudo apt-get install ros-kinetic-desktop-full
Initialize rosdep
sudo rosdep init
rosdep update
In order to setup environment variables, append the following to ~/.bashrc
# Sourcing ROS environment variables
source /opt/ros/kinetic/setup.bash
. ~/.bashrc
Configuring catkin workspace¶
ROS recommends the usage of catkin for building it’s packages. In order to achieve this, we’ll create a new directory catkin_ws, with an inner directory src and a CMakeLists.txt indicating it is a catkin workspace.
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ..
catkin_make
Also, in order to setup environment variables, append the following to ~/.bashrc. Make sure to adapt to your usage if you don’t create the workspace in the ~/catkin_ws directory.
# Sourcing catkin environment variables
source ~/catkin_ws/devel/setup.sh
. ~/.bashrc
Install OpenCV¶
On ROS Kinetic the OpenCV library its already installed, all you need to do is set PKG_CONFIG_PATH to point to ROS libs [3]:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/ros/kinetic/lib/pkgconfig
sudo cp /opt/ros/kinetic/lib/pkgconfig/opencv-3.2.0-dev.pc /opt/ros/kinetic/lib/pkgconfig/opencv.pc
Install V4l Control Panel¶
Finally install V4lCP, which can be downloaded here, just click on available on the Software Center and follow system instructions to install from Ubuntu Store.
Now that enviroment is set, go ahead and Compile vision code, go to Compilation
Notes
| [1] | A VM can be used but depending on your machine, some algorithms may behave slower than in case that the system is really installed on HDD |
| [2] | ROS installation guide |
| [3] | ROS has keep opencv version sync with opencv repository, so the file opencv-3.2.0-dev.pc may be another opencv version, in case of error, just substitute opencv-3.2.0-dev.pc for existent opencv-version.pc in the folder. |


Date: 18th August 2021 - Wednesday
#100DaysOfCode: R1D1
18th August 2021
Today I dusted off the blog: aggrippino.com:
- Updated WordPress.
- Fixed file permissions on the web host.
- Deleted/updated/installed some plugins.
- Deleted/updated some themes. Installed a new theme (OnePress).
- Tried the WP Dark Mode plugin, but deactivated it due to conflicts with theme and extensions.
- Installed SyntaxHighlighter Evolved plugin.
- Made modifications to some CSS and some images to work with the new theme
- Installed UpdraftPlus for automatic backups to GDrive.
- Tried to set up Adsense, but it was a No Go… They won’t let me put in American payment information from a Malaysian IP address.
- Started to check out Hashnode as a possible alternative
Log on GitHub: r1-log.md


fun classByString(name: String?): KClass<out Building>?
Used by the CityFileAdapter to help turn the names in the datafiles to the actual classes.
name - name of Building
name


Preparation time
30 mins to 1 hour
Cooking time
1 to 2 hours
Serves
Serves 6 - 8
Dietary
This decadent dessert would make an impressive finish to a dinner party. You could bake the tart case and make the filling ahead of time and whip up the meringue at the last minute.
Preheat the oven to 200C/400F/Gas 6. Grease a 30cm/12in tart tin.
For the pastry, place the flour, cocoa powder and caster sugar in a food processor, add the butter and pulse until the mixture resembles breadcrumbs. Add the milk and blend again until the mixture just comes together. Remove the pastry from the food processor and press it into the bottom and sides of tart tin.
Line the tart case with tin foil, fill with baking beans and bake blind for 10 - 15 minutes. Remove the baking beans and foil, cover the edge of the tart case with foil to prevent burning, and return to the oven for 10-15 minutes. Remove the tart case from the oven and set aside to cool.
For the mocha filling, melt the chocolate in a microwave or in a bowl suspended over a pan of barely simmering water. Whisk together the egg yolks, sugar and cornflour until pale and creamy.
Heat the milk and coffee powder until just simmering, then whisk into the egg mixture until well combined. Pour the mixture into the saucepan and cook over a gentle heat, stirring all the time, until the mixture has thickened enough to coat the back of a spoon. Whisk in the melted chocolate, then pour the mixture into the pastry case and transfer to the fridge for 1-2 hours.
For the meringue, place the egg whites, salt and lemon juice in the bowl of a food mixer, whisk slowly until frothy, then turn up the speed and whisk until the mixture holds stiff peaks. Mix the granulated sugar and egg white powder together then gradually add to the egg whites, whisking all the time, until the mixture is smooth and glossy.
Heat the treacle, sugar and water in a small pan to 110C/225F then pour into the egg whites in a thin stream, whisking until the bowl is cool and the meringue mixture is stiff.
Spread a thin layer of meringue over the surface of the pie to cover the filling completely then pipe the remaining meringue on top. Using a blow torch, lightly brown the meringue and serve immediately.


Yalta nestles inside a deep bay on the North coast of the Black Sea, surrounded by mountains covered in woods, vineyards and orchards. As the Crimea’s most important Black Sea resort, the port is a magnet for cruise ships and superyachts of all types and is a hive of activity.
Yalta has 2 Blue Flag beaches and a beautiful waterfront, where locals and tourists gather to be seen.
There are no facilities for yachts here.
Position 44°29.4’N. 34°10.3’E.
Currently this port is closed to international shipping.
It was a Port of Entry when under Ukrainian rule. The current situation is unknown.
Last updated February 2016.
The main Passenger Port is open to the south, and with an onshore wind, conditions can become untenable. Local officials warn that Yalta is no place to be in a Southerly. Yachts should med-moor with own anchor on the NW quay. This harbour is reported to be crowded, with no security or services, noisy and expensive (US$50 a night in 2009).
The commercial harbour (Massandra) to the East, is reported to be empty, clean and cheap. It is not close to the town but taxis are very reasonable. It may be possible to obtain permission from Port Control to move there.
Yalta has good shops for provisioning and a market.
Last updated July 2009.


Streams HealthCare Visualization Demo
Simulate Alert
All
|
None
State
Healthy
Alert
Activity Level
Active
Inactive
Demographic
Child
Youth
Adult
Senior
Care Level
Minimum
Moderate
Maximum
Intensive
×
,
HR
-1
bpm
ABP
-1
mmHg
Temp
-1
°F
SpO2
-1
%
Alerts


My Future plans
The laptop I am using today is the one I was gifted 6 years ago. It doesn't look the same anymore but I still love it :-) Being a Software Engineer, I have dedicated my life to computing devices. Besides doing Software Engineering Core subjects,I have structured my study plan such that I am utilising my electives to do some relevant subjects ie Web Systems, Cloud Computing and Software as a service, plus I am planning to do .NET, Database Fundamentals and Mobile Applications Development in future which would help me in my career ahead. It will increase the list of professions, I can undertake in future.
My future career goal is working as a Software Developer or a Technical Business Analyst. After my Bachelors degree, I am planning to take a working break for 2-3 years and later I want to head back to uni for Masters or PHD.
One more thing that I would like to share about myself is, "I love coding". It has now become my hobby to learn new programming languages. So far, I know assembly which is a low level programming language plus some high level programming languages such as Java, C-programming and Python.The programming language, I learn online during my free time is Ruby on Rails.In order to achieve my goals ahead, computing devices are going to be my best companions in my journey to success!!! Therefore, I also have to be a good friend to them :-)


--- layout: page title: Oh wow, what did you click permalink: 404.html ---
404 Not Found
maybe you typed too quickly
I weep for you. Not.
-- A haiku by me --


I can't work out wether I've missed some stage in the setup or not... "power2" is not appearing on the "Inputs" page of emoncms. I have rf_fail, power1, voltage and temperature.
My system monitors both house and solarPV (Type 1) with an EmonTX which then connects with an EmonBase and EmonGLCD.
All three were programmed jsut the other day with the latest code.
The GLCD works wonderfully showing "using" , "Solar PV" and "importing/exporting" as things happen ....
BUT....
EnomCMS won't give me power2 as an input - Is there something I need to do to make it show up? The others appeared by themselves. I can't show generation.
Everything is working perfectly apart from giving me "power2" as an input.
Does anyone have any suggestions? ..or is there something fundamental that I'm misunderstanding!?
Re: Power2 missing?
.....errr, please ignore me on that one! Now I've had a little time this evening to look through the code I realised I needed to add "power2" to be reported in the EmonBase code!! Obvious when I had time!! :-s
I'm very sorry, I hope to have something better to post next time :-)
Richard
Re: Power2 missing?
1st post, go easy on me :)
Recieved all my Solar kit yesterday, opted for 2 CT monitors, emonGLCD, the pi daughter board and purchased a pi.
Managed to trundle through setting up an sql db with emoncms etc. Had a bit of a strange one whereby when the solar generated over circa 300watts, the house power usage would drop by 200watts. I solved this by removing the ac adaptor and reflashing the EmonTX with the CT123 code and removing thac adaptor, all is well again.
The emonGLCD works a treat now as it should, oh apart from it not syncing up the correct time, in fact it doesnt sync up any time it just shows the time since it was powered on (any help on this would be appreciated).
The main reason for me jumping on this post is because I cannot seem to get the solar power to be logged in the sqldb?
in the Feeds section of Emoncms it simply says "inactive" yet on the input section the node10_2 is showing the wattage perfect. Needless to say I am unable to create any realtime or historical graphs. I have tried adding various processes to the feed but to no avail? I wondered if the feed naming had to be specific so tried power1, Power1, power2 etc but still it fails to log anything?
many thanks for all your help, I am pretty impressed in the kits and am looking forward to learning much more!
David
further update, just tried to log other feeds and theyre inactive from the Emontx although they show their values live in the Feeds section.


Search to check availability to medicine and place and order
Give us a call or send us an email and we will get back to you as soon as possible!
0505813315/0547858646
lizmat@gmail.com


| 1985 |
A mirror aboard the Space Shuttle Discovery is accidentally pointed away from the Earth instead of its intended target of Mauna Kea, Hawaii. |
23 Sep 1999 |
NASA's $125 million Mars Climate Orbiter burns to a crisp when it enters the Martian atmosphere at an altitude of 37 miles instead of 186 kilometers. |
5 Dec 2003 |
Because Tokyo Disneyland engineers recently switched to metric units, an improperly-sized Space Mountain ride vehicle axle suddenly snaps. |


Example controller for use with modbridge_node. More...
#include "ros/ros.h"
#include "modelica_bridge/ModComm.h"
Go to the source code of this file.
Macros | |
| #define | MAX_ARRAY 100 |
| Defines the maximum size of internal data arrays. More... | |
Functions | |
| void | controlCallback (const modelica_bridge::ModComm::ConstPtr &feedback_val) |
| void | joyCallback (const modelica_bridge::ModComm::ConstPtr &inJoy) |
| int | main (int argc, char **argv) |
Variables | |
| ros::Publisher | control_pub |
| publisher for controller values More... | |
| double | springSetPoints [MAX_ARRAY] = {0.0} |
| array to store control values More... | |
Example controller for use with modbridge_node.
Receives teleop input from two_springs_modbridgex_teleop, and feedback from model via modbridge_node. Provides basic controller output to move feedback values to the input values.
This file is part of the modelica_bridge_example package and subject to the license terms in the top-level LICENSE file of the modelica_bridge_examples repository. https://github.com/ModROS/modelica_bridge_examples/blob/master/LICENSE
Copyright 2018
Definition in file controller.cpp.
| #define MAX_ARRAY 100 |
Defines the maximum size of internal data arrays.
Definition at line 22 of file controller.cpp.
| void controlCallback | ( | const modelica_bridge::ModComm::ConstPtr & | feedback_val | ) |
Receives feedback from the model; calculates and publishes control values. Reads from topic /model_values. Publishes to topic /control_values Only reads MAX_ARRAY length of incoming data - rest is not stored.
| [in] | feedback_val | ModComm message holding model feedback values |
Definition at line 38 of file controller.cpp.
| void joyCallback | ( | const modelica_bridge::ModComm::ConstPtr & | inJoy | ) |
Reads input from teleop node, stores as controller's set points Reads on topic /modbridge_joy, of modelica_bridge_example's example teleop node
| [in] | inJoy |
Definition at line 57 of file controller.cpp.
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Initializes node, pub, and subs. Spin to keep the node running
Definition at line 70 of file controller.cpp.
| ros::Publisher control_pub |
publisher for controller values
Definition at line 24 of file controller.cpp.
| double springSetPoints[MAX_ARRAY] = {0.0} |
array to store control values
Definition at line 26 of file controller.cpp.


You can withdraw your cryptocurrency by logging in, then going to the wallets page. You need to specify the address you want to send your cryptocurrency to and confirm that you are able to withdraw said currency.
You can review the source code on Github and then fork it and create your own. Please note that the software is licensed under Apache V2 and all future source code and development will hosted on eaxops.com in the near future.


git clone https://github.com/geodesystems/ramadda.git cd ramadda antTo run quickly on your local machine do:
sh dist/ramaddaserver/ramadda.shThis will create a RAMADDA home directory at ~/.ramadda. To change this do:
sh dist/ramaddaserver/ramadda.sh -Dramadda_home=/some/other/directoryRAMADDA will be available at http://localhost:8080/repository


THIS FUNCTION IS DEFUNCT.
get_ubioid(searchterm, searchtype = "scientific", ask = TRUE, verbose = TRUE, rows = NA, family = NULL, rank = NULL, ...) as.ubioid(x, check = TRUE) # S3 method for ubioid as.ubioid(x, check = TRUE) # S3 method for character as.ubioid(x, check = TRUE) # S3 method for list as.ubioid(x, check = TRUE) # S3 method for numeric as.ubioid(x, check = TRUE) # S3 method for data.frame as.ubioid(x, check = TRUE) # S3 method for ubioid as.data.frame(x, ...) get_ubioid_(searchterm, verbose = TRUE, searchtype = "scientific", rows = NA)
get_ubioid_
to get back all, or a subset, of the raw data that you are
presented during the ask process.Filtering
below.rank_ref
for possible
options. Though note that some data sources use atypical ranks, so inspect the
data itself for options. Optional. See Filtering
below.as.ubioid
as.ubioid
A vector of uBio ids. If a taxon is not found NA is given. If more than one uBio id is found the function asks for user input (if ask = TRUE), otherwise returns NA. Comes with an attribute match to investigate the reason for NA (either 'not found', 'found' or if ask = FALSE 'NA due to ask=FALSE')
The parameters family
and rank
are not used in the search to the data
provider, but are used in filtering the data down to a subset that is closer to the
target you want. For all these parameters,
you can use regex strings since we use grep
internally to match.
Filtering narrows down to the set that matches your query, and removes the rest.


Don't have an account?
By clicking Sign up, I agree to your terms
435 City hall,
NewYork City SD092.
8088 Jasmine hall,
436 Honey hall,


Our website is under construction. We'll be here soon with our new awesome site.
DAYS
HOURS
MINUTES
SECONDS


# Script block to identify host, user, and kernel
import sys
! echo 'HID : ' $HOSTNAME
! echo 'UID : ' $USER
! pwd
print(sys.executable) #print(sys.version) #print(sys.version_info)
HID : atomickitty
UID : sensei
/home/sensei/1330-textbook-webroot/ctds-webbook/docs/lesson0
/opt/jupyterhub/bin/python3
%%html
<!-- Script Block to set tables to left alignment -->
<style>
table {margin-left: 0 !important;}
</style>
JupyterLab/iPython Fundamentals
Last GitHub Commit Date: none
Topics
- JupyterLab (iPython) as a programming environment
- Programming as a problem solving process
- The CCMR Approach
JupyterLab (iPython) Environment
The tools:
JupyterLab https://jupyter.org/ is a web-based interactive development environment for Jupyter notebooks, code, and data.
Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data organizing and transformation, numerical simulation, statistical modeling, visualization, machine learning, and other similar types of uses.
JupyterHub https://github.com/jupyterhub/jupyterhub is a multi-user Hub that spawns, manages, and proxies multiple instances of the single-user Jupyter notebook server.
All these tools allow use of various coding languages; Python is the choice for ENGR 1330. Installing JupyterLab on your own computer is relatively straightforward if it is an Intel-based Linux, Macintosh, or Windows machine - simply use Anaconda https://www.anaconda.com/ as the installer.
Installing onto an ARM-based machine is more difficult, but possible (this notebook was created on a Raspberry Pi). With both Apple and Microsoft abandoning Intel one can only hope for Anaconda builds for aarch64 (ARM).
This course:
You will create and use Jupyter Notebooks that use the ipython kernel, the notebook files will look like filename.ipynb
; these are ASCII files that the JupyterLab interprets and runs.
Python
The programming language we will use is Python (actually iPython). Python is an example of a high-level language; other high-level languages include C, C++, PHP, FORTRAN, ADA, Pascal, Go, Java, etc (there are a lot).
As you might infer from the name high-level language, there are also low-level languages, sometimes referred to as machine languages or assembly languages. Machine language is the encoding of instructions in binary so that they can be directly executed by the computer. Assembly language uses a slightly easier format to refer to the low level instructions. Loosely speaking, computers can only execute programs written in low-level languages. To be exact, computers can actually only execute programs written in machine language. Thus, programs written in a high-level language (and even those in assembly language) have to be processed before they can run. This extra processing takes some time, which is a small disadvantage of high-level languages. However, the advantages to high-level languages are enormous.
First, it is much easier to program in a high-level language. Programs written in a high-level language take less time to write, they are shorter and easier to read, and they are more likely to be correct. Second, high-level languages are portable, meaning that they can run on different kinds of computers with few or no modifications. Low-level programs can run on only one kind of computer and have to be rewritten to run on another.
Due to these advantages, almost all programs are written in high-level languages. Low-level languages are used only for a few specialized applications, and for device drivers.
Two kinds of programs process high-level languages into low-level languages: interpreters and compilers. An interpreter reads a high-level program and executes it, meaning that it does what the program says. It processes the program a little at a time, alternately reading lines and performing computations.
| Interpreted Program. Image from https://runestone.academy/runestone/books/published/thinkcspy/GeneralIntro/ThePythonProgrammingLanguage.html | ||
|---|---|---|
A compiler reads the program and translates it completely before the program starts running. In this case, the high-level program is called the source code, and the translated program is called the object code or the executable. Once a program is compiled, you can execute it repeatedly without further translation.
| Compiled Prorgam. Image from: https://runestone.academy/runestone/books/published/thinkcspy/GeneralIntro/ThePythonProgrammingLanguage.html | ||
|---|---|---|
Many modern languages use both processes. They are first compiled into a lower level language, called byte code, and then interpreted by a program called a virtual machine. Python uses both processes, but because of the way programmers interact with it, it is usually considered an interpreted language.
As a language, python is a formal language that has certain requirements and structure called "syntax."
Formal languages are languages that are designed by people for specific applications. For example, the notation that mathematicians use is a formal language that is particularly good at denoting relationships among numbers and symbols. Chemists use a formal language to represent the chemical structure of molecules. Programming languages are formal languages that have been designed to express computations.
Formal languages have strict rules about syntax. For example, 3+3=6 is a syntactically correct mathematical statement, but 3=+6& is not.
Syntax rules come in two flavors, pertaining to tokens and structure. Tokens are the basic elements of the language, such as words, numbers, and chemical elements. One of the problems with 3=+6& is that & is not a legal token in mathematics (at least as far as we know).
The second type of syntax rule pertains to the structure of a statement— that is, the way the tokens are arranged. The statement 3=+6& is structurally illegal (in mathematics) because you don’t place a plus sign immediately after an equal sign (of course we will in python!).
When you read a sentence in English or a statement in a formal language, you have to figure out what the structure of the sentence is; This process is called parsing.
For example, when you hear the sentence, “The other shoe fell”, you understand that the other shoe is the subject and fell is the verb. Once you have parsed a sentence, you can figure out what it means, or the semantics of the sentence. Assuming that you know what a shoe is and what it means to fall, you will understand the general implication of this sentence.
Good Resources:
- Learn Python the Hard Way (Online Book) https://learnpythonthehardway.org/book/ Recommended for beginners who want a complete course in programming with Python.
- LearnPython.org (Interactive Tutorial) https://www.learnpython.org/ Short, interactive tutorial for those who just need a quick way to pick up Python syntax.
- How to Think Like a Computer Scientist (Interactive Book) https://runestone.academy/runestone/books/published/thinkcspy/index.html Interactive "CS 101" course taught in Python that really focuses on the art of problem solving.
- How to Learn Python for Data Science, The Self-Starter Way https://elitedatascience.com/learn-python-for-data-science
Readings
Computational and Inferential Thinking Ani Adhikari and John DeNero, Computational and Inferential Thinking, The Foundations of Data Science, Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND) Chapter 1 https://www.inferentialthinking.com/chapters/01/what-is-data-science.htmlhttps://www.inferentialthinking.com/chapters/01/what-is-data-science.html


Chapter 29 Latent Variable Modeling – Path, SEM, CFA
Material in this chapter is directly lifted from Latent Variable Modeling Using R.
29.1 Path Analysis
29.1.1 Background
<IP_ADDRESS> Basic Representation
A path model is a graphic representation of what we are trying to model. In a path model, there are two types of variables
- Exogenous : without direct cause AKA IVs
- Endogenous: with direct cause AKA DVs
In the figure below, the Xs are exogenous and the Ys are endogenous
If a an arrow has a single head, it means it is causing a relationship. If there is a double headed arrow, it means that the relationship is a correlation and there is some sort of covariance.
All important relationships are assumed to be present in a path model. If you do not show the relationship, it is assumed not to exist.
Our predicted value, or endogenous variable, or Y, always has an error term with it. Just like you would imagine with any other type of model.
Note that your error terms with the predicted or endogenous variables are never connected to bi-directional arrows. Their error terms on the other hand, can be! This is important because sometimes your error terms will share a certain amount of co-variation. This is indicated by having the double arrow on either side of the errors. The author shows that in a figure like the one below.
As seen above, we use the coefficient c to talk bout the relationship between two variables (in this case, X and Y) after removing the effect of W.
What we are doing now as we depart from things like regression analysis, is look at things beyond manifest variables (things you can see like height or age and get a good number on) and move towards looking at latent variables. We can’t directly observe latent variables, but we assume for them to be there.
You will sometimes seen path diagrams displayed differently, but as far as this book is concerned, all relationships will be made explicit in the path diagram.
<IP_ADDRESS> Tracing Rules
Sewall Wright was a genetecist who came up with the rules on how to derive our values for path analysis. What we are doing is estimating the coovariance between two variables by summing the appropriate connecting paths. If you have a basic model (no means ELABORATE HERE LATER WHEN YOU GET IT!), there are only a few rules
- Trace all paths between two variables (or a variable back to itself), multiplying all the coeffecients along a given path
- You can start by going backwards along a single (directional!) arrow head, but once you start going forward along these arrows you can no longer go backwards.
- No loops! You can not go through the same variable once for a given path.
- At maximum, there can be one double sided arrow in a path.
- After tracing all paths for a given relationship, sum all the paths
The basic idea with these rules is that you need to look at each variable and try to get from your exogenous (IV) to your endogenous (DV) every way you can, without breaking the rules. So to get from your first X1 to Y, you can either go
- Directly there via a
- Jump over via e, then through X3 to C to Y1
- Jump over via d, then through b
- This results in saying from \(X1\) to \(Y\), notated 0_1Y = a + ec + db
- You then do this for the other exogenous variables
Note that we also have to consider the covariance of Y with itself. Since we can go backwards on a one directional arrow, we can go back to X1 via a, but then have to go back (Why?!) and the same for z, our residual. Then if we add all three up, we get the amount of our endogenous variable’s variance explained by in X1, X2, X3 (the \(R^2\)) and z is what is left over. IS THIS KIND OF LIKE A SUM OF SQUARES TOTAL VARIANCE?!
29.1.2 Getting Numeric
So now we know how these things work, what we then want to do is see what happens when we look at putting numbers inside of them. * Step 1: Look at the correlations (double headed arrows) that we know from our correlation matrix * Step 2: Do clever algebra knowing you have three values and three related equations to derive your missing values.  * Step 3: Now you know all the path values, you just need to figure out the residual. * Step 4: See the book for the exact math of it
<IP_ADDRESS> Path Coeffecients
So the values with the double arrow heads we know are correlation coeffecients. But those are not the same as single arrow heads!  Note the two important parts of this definitions: standardized and partial. Standardized means it refers to values on z scores. Partial means they are values for after the effects of other variables have been controlled for.
Note that this is just like regression standard vs unstandardized in that you can convert standardized to non. The same benefits apply (intra model comparision vs interpretability).
29.1.3 Doing It in R
To do path modeling in R, this book will use the lavaan
package. Note lavaan means ‘’LAtenent VAriable ANalysis’’. To make a latent variable model in R, you need to specify two things
- Specify the path model
- Analyze!
Take a second and look at the given R syntax and the path model that it is showing. The author walks us through this…
Note the top line is the model definition and you have to put it as a string see the ’ ! We then put C and D as outcomes with their associated paths.
library(lavaan)
## This is lavaan 0.5-23.1097
## lavaan is BETA software! Please report any bugs.
##
## Attaching package: 'lavaan'
## The following object is masked from 'package:psych':
##
## cor2cov
example.model <- '
C ~ y*B + w*A
D ~ z*C + x*A
#Optional Label of Residual Variance
C~~C_Resid*C
#Optional Label of Residual Variance
D~~D_Resid*D
'
Once you set this model, then you can do either a cfa() or sem() call to the model.
Below is a cheat sheet for lavaan’s syntax:
<IP_ADDRESS> More Syntax
You can enter either the raw data, or the covariance matrix in R with lavaan.
- Raw data = data argument
- Covariance Matrix = sample.cov, with this you also get option for input a mean vector with sample.mean()
example.fit <- sem(example.model, data=example.data)
example.fit <- sem(example.model, sample.cov = example.cov, sample.nobs =500)
The default option with lavaan is normal-theory maximum likelihood.
Once you designate a model using either the syntax
Then you just (like everything in R) need to call the summary function on it. With the summary() function you get
- Note if parameter estimations converged
- Sample Size
- Estimator
- fit statistic with df and p value
- Unstandardized parameter values
- The parameter estimates’ standard error
- The ratio of parameter estimates and their standard errors (Wald statistic)
- P value for Wald statistic
You can change the arguments if you want to get other types of values for the model.
29.1.4 An Example In R
#--------------------------------------------------
## Make Data
regression.cor <- lav_matrix_lower2full(c(1,.2,1,.24,.3,1,.7,.8,.3,1))
colnames(regression.cor) <- row.names(regression.cor) <- c("X1","X2","X3","Y")
regression.cor
## X1 X2 X3 Y
## X1 1.00 0.2 0.24 0.7
## X2 0.20 1.0 0.30 0.8
## X3 0.24 0.3 1.00 0.3
## Y 0.70 0.8 0.30 1.0
## Specifiy Path Model
regression.model <- '
#Structural Model for Y
Y ~ a*X1 + b*X2 + c*X3
#Label Residual Variance for Y
Y ~~ z*Y
'
## Estimate Parameters with sem() and n = 1000
regression.fit <- sem(regression.model, sample.cov = regression.cor, sample.nobs = 1000)
summary(regression.fit, rsquare=TRUE)
## lavaan (0.5-23.1097) converged normally after 25 iterations
##
## Number of observations 1000
##
## Estimator ML
## Minimum Function Test Statistic 0.000
## Degrees of freedom 0
## Minimum Function Value 0.0000000000000
##
## Parameter Estimates:
##
## Information Expected
## Standard Errors Standard
##
## Regressions:
## Estimate Std.Err z-value P(>|z|)
## Y ~
## X1 (a) 0.571 0.008 74.539 0.000
## X2 (b) 0.700 0.008 89.724 0.000
## X3 (c) -0.047 0.008 -5.980 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|)
## .Y (z) 0.054 0.002 22.361 0.000
##
## R-Square:
## Estimate
## Y 0.946
#--------------------------------------------------
29.1.5 Indirect Effects
The examples above are concerned with one variables direct effect on another. An an indirect effect is an effect a variable has on another variable when going through one other variable.
Here we have an example of an indirect effect. The figure show that years in school directly affects salary as shown with the direct arrow path ‘’a’‘. The model also supposes that cognitive ability can indirectly affect salary, but cognitive ability is affected by number of years in school. The indirect influence is a compound effect. You can use the tracing rules to see that it’s possible to go via’‘b’‘and’‘c’’ to get to salary.
<IP_ADDRESS> Example with Indirect Effects
The data to estimate this model are given here with the parameter values and the covariances.
All of this data is put together and analyzed in the code below.
# Indirect Model
# Make Data
beaujean.cov <- lav_matrix_lower2full(c(648.07,30.05,8.64,140.18,25.57,233.21))
colnames(beaujean.cov) <- row.names(beaujean.cov) <- c("salary","school","iq")
beaujean.cov
## salary school iq
## salary 648.07 30.05 140.18
## school 30.05 8.64 25.57
## iq 140.18 25.57 233.21
# Specifiy Path Model
beaujean.model <- '
salary ~ a*school + c*iq
school ~ b*iq
ind:= b*c
'
# Estimate Parameters
beaujean.fit <- sem(beaujean.model, sample.cov = beaujean.cov, sample.nobs = 300)
summary(beaujean.fit)
## lavaan (0.5-23.1097) converged normally after 23 iterations
##
## Number of observations 300
##
## Estimator ML
## Minimum Function Test Statistic 0.000
## Degrees of freedom 0
## Minimum Function Value 0.0000000000000
##
## Parameter Estimates:
##
## Information Expected
## Standard Errors Standard
##
## Regressions:
## Estimate Std.Err z-value P(>|z|)
## salary ~
## school (a) 2.515 0.549 4.585 0.000
## iq (c) 0.325 0.106 3.081 0.002
## school ~
## iq (b) 0.110 0.009 12.005 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|)
## .salary 525.129 42.877 12.247 0.000
## .school 5.817 0.475 12.247 0.000
##
## Defined Parameters:
## Estimate Std.Err z-value P(>|z|)
## ind 0.036 0.012 2.984 0.003
## Reporting results
library(xtable)
xtable(parameterEstimates(regression.fit, standardized = TRUE)[,c(1:3,5:6,12)], caption="Example Table Using \\texttt{xtable()} Function.")
## % latex table generated in R 3.4.1 by xtable 1.8-2 package
## % Fri May 4 09:51:48 2018
## \begin{table}[ht]
## \centering
## \begin{tabular}{rlllrrr}
## \hline
## & lhs & op & rhs & est & se & std.all \\
## \hline
## 1 & Y & \~{} & X1 & 0.57 & 0.01 & 0.57 \\
## 2 & Y & \~{} & X2 & 0.70 & 0.01 & 0.70 \\
## 3 & Y & \~{} & X3 & -0.05 & 0.01 & -0.05 \\
## 4 & Y & \~{}\~{} & Y & 0.05 & 0.00 & 0.05 \\
## 5 & X1 & \~{}\~{} & X1 & 1.00 & 0.00 & 1.00 \\
## 6 & X1 & \~{}\~{} & X2 & 0.20 & 0.00 & 0.20 \\
## 7 & X1 & \~{}\~{} & X3 & 0.24 & 0.00 & 0.24 \\
## 8 & X2 & \~{}\~{} & X2 & 1.00 & 0.00 & 1.00 \\
## 9 & X2 & \~{}\~{} & X3 & 0.30 & 0.00 & 0.30 \\
## 10 & X3 & \~{}\~{} & X3 & 1.00 & 0.00 & 1.00 \\
## \hline
## \end{tabular}
## \caption{Example Table Using \texttt{xtable()} Function.}
## \end{table}
29.2 Basic Latent Variable Models , SEM
29.2.1 Background
The big umbrella term for the statistical models that use a structural model and a latent variable model are structural equation models’’ or SEMs.
Reiterating for my own sake, we have two main parts * The Structural Model: Regression-like relationship between variables * The Latent Variable Model: Creates the latent variable structure
If there is latent variable model is analyzed without a structural model it is often called Confirmatory Factor Analysis or CFA. If you don’t even have a hypothesized latent variable structure, then you have Exploratory Factor Analysis‘’’ or EFA. Note that when we say factor in factor analysis, that is synonymous with the idea of latent variable. The way in which all of the variables relate to one another can be seen in the chart below.
29.2.2 Latent Variable Models
There are two types of latent variables * Reflective: Thought to cause other variables to covary * Formative: Are result of other variables’ covariation (like regression)
This book/wiki will focus primarily on reflective (variables cause others to covary). The point of using a reflective model is to understand the structure that caused the manifest variables to act like they do. These manifest variables that have an effect on the latent variables are also called indicator variables. The idea behind the whole thing is that there is a variable latent (badumch) driving the way that each indicator variable acts.
In the chapter before we had a latent variable, but it was the error term. In the whole mess of numbers the LV was an unobserved value that had a significant amount of influence one of the observed variables. But since it was an error term, it was technically measured differently than how we normally go about measuring LVs.
The big idea behind LVM is that behind the one big thing you are measuring, there are a few small LVs that you can observe at an individual level. First have a peek at the idea behind g, or intelligence.
We see the big thing g at the top of it, and five MV (manifest variables) or indicator variables. Based on how the indicator variables interact, we can have an idea of what is going on with g.
**So the idea with LV modeling is that a way to identify or confirm the number of LVs that are producing the manifest variables to act the way they are*.**
One measure of influence that the latent variable has on the manifest variables is the factor loading. You can think of these factor loadings like regression or path coefficients. There is another term called structure coefficient’’. A structure coefficient is the correlation between the model’s MV and the LV. Now if you only have one LV, like the figure above, these are the same things. If you have more than one LV, these are different (unless somehow all your values are not correlated with each other).
If you look above again at the figure all a, b,c, d, and e are factor loadings. They show the relationship between the LV and the MV.
Now being super clever again, you can get something kind of like an \(R^2\) value for for each MV using the path rules described in the previous chapter. That R^2-y value is the communality of the variable. The opposite of communality is uniqueness. Uniqueness is the amount of of variance in the MV not accounted for by the LV.
A good example to demonstrate this is by looking at the Information manifest variable above. Since you are intersted in that variable, you can go up the path to g via a, then since you can’t go anywhere else (no double headed arrows), then you can slide back down a, follow the rules that you have to multiple your paths, and then that value of a x a is the amount of variance in g explained in information.
<IP_ADDRESS> Identification of Latent Variable Models
LV modeling questions come down to one big question: > Is there enough non-redundant information in the data to be able to estimate the required parameters uniquely?
This is not a problem with regression models because the number of parameters to estimate exactly equals the amount of non-redundant information. If that is confusing (it was to me the first time), then just think that the amount of non-redundant information in the data as the number of non-redudant variances/covariances in the dataset.
We run into a bit of a problem with LVM because models can be 1. Just identified 2. Underidentified: more parameter to estimate than non-redudant information, creates error messages with lavaan 3. Overidentified: More MVs than you need to get at the LVs that are there, does create model fit
Degrees of freedom in LVM are the number of non-redundant pieces of information in the data subtract the amount of parameters to estimate.
The following is a list of rules of thumbs to get you to a good model, since hitting it right on the head is really hard.
<IP_ADDRESS>.1 Number of Indicator Variables
The big goal is to have at least 4 indicator variables for each latent variable in the model, hoping desperately that none of their error variance covary.
Even if you don’t have that, you can hope for at least 4 conditions as long as you get one of these.
- At least 3 indicator variables with no error covariance
- The LV has at least 2 indicators with non-covarying error variances and the indicator’s variables’ loadings are set equal to each other
- The LV has one indicator, the directional paths are set to one, and the error variance is fixed to some value
- The fixed value is either 0.0 meaning indicator variables has perfect reliability OR
- Something about reliability and variances <— DON’T GET THIS!!
<IP_ADDRESS>.2 Latent Variable Scales
Since LVs are not observable, they are measured an abstract scale. Because of this, the numbers we use to measure things is constrained by setting one of the parameter estimates. Normally we set one of these parameter values one of three ways 1. Standardized Latent Variable: Put LV’s variance to 1, if you then standardize indicator variables, interpret all like regression 2. Marker Variable: Single Factor loading for each LV constrained to arbitrary value , the one that is set to 1 is the marker variable 3. Effects Coding: Estimates all loadings, constrains number of loadings for given LV to 1
<IP_ADDRESS>.3 Other Conditions
- If you have more than one LV in model… for each PAIR of the LVs
- Each LV needs one indicator variable that has no error co-variance with other LVs (solely responsible for variance in LV?)
- Covariance of Pairs of LVs is constrained to a specific value 2.For every indicator variable, there is at least one other indicator variable (same or different LV) to whom the error variances DO NOT covary.
<IP_ADDRESS>.4 Empirical Underidentification
You get underidentificaiton if one of the parameters is not equal to 0. If the error is greater than 0 you have too much information with too little of parameters. Now if one of the errors equals 0, then what happens is that the model then requires estimating two separate LVs.
==Doing it With One Latent Variable in R==
Data:
library(lavaan)
#convert vector of correlations into matrix
wisc4.cor <- lav_matrix_lower2full(c(1,.72,1,.64,.63,1,.51,.48,.37,1,.37,.38,.38,.38,1))
colnames(wisc4.cor) <- rownames(wisc4.cor) <- c(
"Information",
"Similarities",
"Word.Reasoning",
"Matrix.Reasoning",
"Picture.Concepts")
#Enter SDs
wisc4.sd <- c(3.01, 3.03,2.99,2.89,2.98)
names(wisc4.sd) <- c(
"Information",
"Similarities",
"Word.Reasoning",
"Matrix.Reasoning",
"Picture.Concepts")
## Make correlations CVs via info from SD
wisc4.cov <- cor2cov(wisc4.cor,wisc4.sd)
#Designate Model
wisc4.model <- '
g =~ a*Information + b*Similarities + c*Word.Reasoning + d*Matrix.Reasoning + e*Picture.Concepts
'
wisc4.fit <- cfa(model = wisc4.model,sample.cov = wisc4.cov,sample.nobs = 550, std.lv=FALSE)
# First two above are model and data
# Second says how big is your sample size
# Standard with lavaan is use first LV as indicator, which is redundant with std.lv=FALSE
# If you put it as TRUE it scales ''g'' by standardizing it, estimate all loadings w SD of LV = 1
summary(wisc4.fit, standardized=TRUE)
## lavaan (0.5-23.1097) converged normally after 30 iterations
##
## Number of observations 550
##
## Estimator ML
## Minimum Function Test Statistic 26.775
## Degrees of freedom 5
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Information Expected
## Standard Errors Standard
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## g =~
## Informatin (a) 1.000 2.578 0.857
## Similarits (b) 0.985 0.045 21.708 0.000 2.541 0.839
## Word.Rsnng (c) 0.860 0.045 18.952 0.000 2.217 0.742
## Mtrx.Rsnng (d) 0.647 0.047 13.896 0.000 1.669 0.578
## Pctr.Cncpt (e) 0.542 0.050 10.937 0.000 1.398 0.470
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Information 2.395 0.250 9.587 0.000 2.395 0.265
## .Similarities 2.709 0.258 10.482 0.000 2.709 0.296
## .Word.Reasoning 4.009 0.295 13.600 0.000 4.009 0.449
## .Matrix.Reasnng 5.551 0.360 15.400 0.000 5.551 0.666
## .Picture.Cncpts 6.909 0.434 15.922 0.000 6.909 0.779
## g 6.648 0.564 11.788 0.000 1.000 1.000
# If you put standardized=TRUE it gives BOTH standardized and unstandardized values
# Estimate column is the raw scores with marker variable to scale LV
# NOTE THERE ARE TWO TYPES OF STANDARDIZED SCORES
# 1. Std.lv Standardizes LV, but leaves MV in RAW
# 2. Std.all Standardizes both LV and MV!!
parameterEstimates(wisc4.fit, standardized = TRUE, ci =FALSE)
## lhs op rhs label est se z pvalue
## 1 g =~ Information a 1.000 0.000 NA NA
## 2 g =~ Similarities b 0.985 0.045 21.708 0
## 3 g =~ Word.Reasoning c 0.860 0.045 18.952 0
## 4 g =~ Matrix.Reasoning d 0.647 0.047 13.896 0
## 5 g =~ Picture.Concepts e 0.542 0.050 10.937 0
## 6 Information ~~ Information 2.395 0.250 9.587 0
## 7 Similarities ~~ Similarities 2.709 0.258 10.482 0
## 8 Word.Reasoning ~~ Word.Reasoning 4.009 0.295 13.600 0
## 9 Matrix.Reasoning ~~ Matrix.Reasoning 5.551 0.360 15.400 0
## 10 Picture.Concepts ~~ Picture.Concepts 6.909 0.434 15.922 0
## 11 g ~~ g 6.648 0.564 11.788 0
## std.lv std.all std.nox
## 1 2.578 0.857 0.857
## 2 2.541 0.839 0.839
## 3 2.217 0.742 0.742
## 4 1.669 0.578 0.578
## 5 1.398 0.470 0.470
## 6 2.395 0.265 0.265
## 7 2.709 0.296 0.296
## 8 4.009 0.449 0.449
## 9 5.551 0.666 0.666
## 10 6.909 0.779 0.779
## 11 1.000 1.000 1.000
Note above that we define the LV of g using all five subsets of the WISC subtests. Now we estimate the parameters with the cfa()
function, as seen above.
Note the top part of the summary output lets you know if you put your model in correctly.
Note that lavaan does not produce communality estimates. Though you can calculate them using the trace rules. You could figure out communality for the Information variable
\[ a x 1 x a = a^2 = 0.86^2 = 0.74\]
Thus uniqueness is
\[ 1- a^2 = 1 - 0.86^2 = 0.26\]
In addition to communality, you can use tracing rules and standardized parameter estimates to calculated the correlations implied by the model’s parameter estimates which you can then compare to the actual correlations you used in the original model. For example you could look at the relationship between Information and Similarities. If you go way up to Figure 3.3 you can see the only way you can get from one to the other is going through ‘’a’ to ‘’b’‘, so you multiply your’‘ab’’ loadings \((0.86)(0.84) = 0.72\). This number almost exactly matches our correlation from the raw data!
You can then use the fitted()
function in lavaan to to get all the model implied-covariances. Taken from the book…
#Model-Implied Covariances
fitted(wisc4.fit)
## $cov
## Infrmt Smlrts Wrd.Rs Mtrx.R Pctr.C
## Information 9.044
## Similarities 6.551 9.164
## Word.Reasoning 5.716 5.633 8.924
## Matrix.Reasoning 4.303 4.241 3.700 8.337
## Picture.Concepts 3.606 3.553 3.100 2.334 8.864
##
## $mean
## Information Similarities Word.Reasoning Matrix.Reasoning
## 0 0 0 0
## Picture.Concepts
## 0
#Transform Model Implied Covarianes to correlations
wisc4Fit.cov <- fitted(wisc4.fit)$cov
wisc4Fit.cor <- cov2cor(wisc4.cov)
#Original Correlations
wisc4.cor
## Information Similarities Word.Reasoning Matrix.Reasoning
## Information 1.00 0.72 0.64 0.51
## Similarities 0.72 1.00 0.63 0.48
## Word.Reasoning 0.64 0.63 1.00 0.37
## Matrix.Reasoning 0.51 0.48 0.37 1.00
## Picture.Concepts 0.37 0.38 0.38 0.38
## Picture.Concepts
## Information 0.37
## Similarities 0.38
## Word.Reasoning 0.38
## Matrix.Reasoning 0.38
## Picture.Concepts 1.00
#Residual Correlations
residuals(wisc4.fit, type = "cor")
## $type
## [1] "cor.bollen"
##
## $cor
## Infrmt Smlrts Wrd.Rs Mtrx.R Pctr.C
## Information 0.000
## Similarities 0.000 0.000
## Word.Reasoning 0.004 0.007 0.000
## Matrix.Reasoning 0.014 -0.005 -0.059 0.000
## Picture.Concepts -0.033 -0.014 0.031 0.109 0.000
##
## $mean
## Information Similarities Word.Reasoning Matrix.Reasoning
## 0 0 0 0
## Picture.Concepts
## 0
fitMeasures(wisc4.fit)
## npar fmin chisq
## 10.000 0.024 26.775
## df pvalue baseline.chisq
## 5.000 0.000 1073.427
## baseline.df baseline.pvalue cfi
## 10.000 0.000 0.980
## tli nnfi rfi
## 0.959 0.959 0.950
## nfi pnfi ifi
## 0.975 0.488 0.980
## rni logl unrestricted.logl
## 0.980 -6378.678 -6365.291
## aic bic ntotal
## 12777.357 12820.456 550.000
## bic2 rmsea rmsea.ci.lower
## 12788.712 0.089 0.058
## rmsea.ci.upper rmsea.pvalue rmr
## 0.123 0.022 0.298
## rmr_nomean srmr srmr_bentler
## 0.298 0.034 0.034
## srmr_bentler_nomean srmr_bollen srmr_bollen_nomean
## 0.034 0.034 0.034
## srmr_mplus srmr_mplus_nomean cn_05
## 0.034 0.034 228.408
## cn_01 gfi agfi
## 310.899 0.982 0.947
## pgfi mfi ecvi
## 0.327 0.980 0.085
modificationIndices(wisc4.fit) #see how to improve!
## lhs op rhs mi epc sepc.lv sepc.all
## 12 Information ~~ Similarities 0.010 0.034 0.034 0.004
## 13 Information ~~ Word.Reasoning 0.279 0.147 0.147 0.016
## 14 Information ~~ Matrix.Reasoning 1.447 0.280 0.280 0.032
## 15 Information ~~ Picture.Concepts 5.493 -0.565 -0.565 -0.063
## 16 Similarities ~~ Word.Reasoning 0.791 0.242 0.242 0.027
## 17 Similarities ~~ Matrix.Reasoning 0.147 -0.089 -0.089 -0.010
## 18 Similarities ~~ Picture.Concepts 0.838 -0.223 -0.223 -0.025
## 19 Word.Reasoning ~~ Matrix.Reasoning 8.931 -0.710 -0.710 -0.082
## 20 Word.Reasoning ~~ Picture.Concepts 2.029 0.365 0.365 0.041
## 21 Matrix.Reasoning ~~ Picture.Concepts 14.157 1.058 1.058 0.123
## sepc.nox
## 12 0.004
## 13 0.016
## 14 0.032
## 15 -0.063
## 16 0.027
## 17 -0.010
## 18 -0.025
## 19 -0.082
## 20 0.041
## 21 0.123
<IP_ADDRESS> Alternative Latent Variable Scaling
So before we fit our model with lavaan’s default marker variable method. We can also do it with the standardized LV and the effects-coding method of LV scaling.
See the code below on how to do this!
# Marker Variable
wisc4.model.Std <- '
g =~ NA*Information + a*Information + b*Similarities + c*Word.Reasoning + d*Matrix.Reasoning + e*Picture.Concepts
# constrain LV Variance to 1
g~~1*g
'
wisc4.fit.Std <- cfa(wisc4.model.Std, sample.cov = wisc4.cov, sample.nobs = 550)
# AND
wisc4.model.effects <- '
g =~ NA*Information + a*Information + b*Similarities + c*Word.Reasoning + d*Matrix.Reasoning + e*Picture.Concepts
#Constrain Loadings Sums To One
a + b + c + d + e == 5
'
wisc4.fit.effects <- cfa(wisc4.model.effects,sample.cov = wisc4.cov, sample.nobs = 550)
29.2.3 Doing it With Two Latent Variables in R
Let’s say we wanted to split our theorized g into two different LVs representing Verbal Comprehension and Fluid Reasoning.
wisc4.model2 <- '
V =~ a*Information + b*Similarities + c*Word.Reasoning
F =~ d*Matrix.Reasoning + e*Picture.Concepts
V~~f*F
'
wisc4.fit2 <- cfa(wisc4.model2,sample.cov = wisc4.cov, sample.nobs = 550)
Data R Code is Modeling :
29.2.4 Doing SEM in R
SEM = LVM + Path Analysis. Here we think Fluid Reasoning has a direct influence on Verbal Comprehension LV.
To use sem()
in R, we need to use both LV operators (=~) and regression operators ( ~).
##SEM
wisc4.SEM.model <- '
#Define Latent Variables, just like above!
V =~ a*Information + b*Similarities + c*Word.Reasoning
F =~ d*Matrix.Reasoning + e*Picture.Concepts
# Define Structural Relations
V~k*F
'
wisc4.SEM.fit <- sem(wisc4.SEM.model, sample.cov = wisc4.cov, sample.nobs = 550)
summary(wisc4.SEM.fit, standardized=TRUE)
## lavaan (0.5-23.1097) converged normally after 39 iterations
##
## Number of observations 550
##
## Estimator ML
## Minimum Function Test Statistic 12.687
## Degrees of freedom 4
## P-value (Chi-square) 0.013
##
## Parameter Estimates:
##
## Information Expected
## Standard Errors Standard
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## V =~
## Informatin (a) 1.000 2.587 0.860
## Similarits (b) 0.984 0.046 21.625 0.000 2.545 0.841
## Word.Rsnng (c) 0.858 0.045 18.958 0.000 2.219 0.743
## F =~
## Mtrx.Rsnng (d) 1.000 1.989 0.689
## Pctr.Cncpt (e) 0.825 0.085 9.747 0.000 1.642 0.552
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## V ~
## F (k) 1.070 0.114 9.376 0.000 0.823 0.823
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Information 2.352 0.253 9.295 0.000 2.352 0.260
## .Similarities 2.685 0.261 10.282 0.000 2.685 0.293
## .Word.Reasoning 4.000 0.295 13.555 0.000 4.000 0.448
## .Matrix.Reasnng 4.380 0.458 9.557 0.000 4.380 0.525
## .Picture.Cncpts 6.168 0.451 13.673 0.000 6.168 0.696
## .V 2.164 0.485 4.464 0.000 0.323 0.323
## F 3.957 0.569 6.960 0.000 1.000 1.000
Note that in the output we have both a latent and a regression section. If you look at the picture below of what we are modeling, note that Verbal Comprehension in Endogenous (aka not measureable directly!), it’s reported variance is the error variance! AKA the variance not explained by Fluid Reasoning.
29.2.5 Reporting Results
Should include
- A theoretical and empirical justification for the hypothesized model
- Complete descriptions of how LVMs were specified
- Description of Sample
- Type of Data used with descriptive stats
- Tests of Assumptions
- How Missing data was handled
- Software used
- Measured and criteria used to fit model
- Alteration made to the model
Tables should have * Parameter estimates * Standard Errors * Standardized versions of the final model * Other significant models that were fit * Path Model


Get Strongest Password
Copy
Uppercase
Lowercase
Numbers
Symbols
Password Length is
Generate Password