Organize and Share Your Work with Self-Contained Projects in JMP® 16 (2021-EU-30MP-736)
Aaron Andersen, JMP Principal Software Developer, SAS
This is an introduction to JMP Projects, with a focus on new project features introduced in JMP 16. JMP Projects provide a single-window, tabbed interface to JMP data, platforms and results. Projects can be used to quickly save and reopen a set of related files and reports, or to organize windows belonging to separate analyses. Starting in JMP 16, data tables, scripts and other files can be embedded in the project file, creating a self-contained project that can easily be shared, archived and distributed.
Auto-generated transcript...
Speaker | Transcript |
Aaron Andersen, JMP | So, welcome to organize and share your work with self contained projects in JMP 16. My name is Aaron Andersen and I am the software developer at JMP responsible for the projects feature. |
Normally I would say I'm coming to you live from SAS World Headquarters, but this time, neither of those things are true. First, because they asked us to | |
record these presentations in advance, they didn't tell me why but I suspect they have doubts about my ability to be coherent and instructive at three o'clock in the morning, | |
they might be right. And second, because none of us are actually at work yet we're still all working from home. So I'm coming to you this morning pre recorded from the corner of my bedroom closet in Apex, North Carolina. | |
We do the best we can. | |
Nevertheless, I hope to teach you a few things about projects that can help you use JMP better and more efficiently, so let's jump right in. | |
it's a way of viewing a set of JMP content in a single organized window, and it's a way of saving a set of JMP content into a single organized file. | |
The best way to understand that is to see it in action. Let's get started and build an example project together. | |
To create a new JMP project, launch JMP 16 and go to file, new, project or Control-Shift P on Windows and something similar on Mac. | |
What I get | |
is a new empty project window. | |
Now we just need some data. | |
The data I want to use today is called dinosauriformesUSA.csv. | |
And dinosauriformes are a glade of reptiles that include dinosaurs, their close relatives and all their descendants. | |
I got this data from a group called the Paleontology Database. They have information on, I think, every archaeological site in the history of the world or paleontology site. | |
With information on who and where how what and so on. It's all creative commons licensed and you can download any subset of it you want in any format you want, so it's fun data to play with. | |
And this is something I made, just the dinosauriformes | |
in the United States of America. | |
What I want to do is import this data into my project. | |
So first I'm going to drag it over into the project contents. I'll explain what does in a bit here. Just for now, I add that to the project, I can then right click and use JMP's import wizard to import the data. | |
My data...here's some header information and then there's the actual data. My data starts on line 19. | |
I know that because I rehearsed this presentation, not because I can count that incredibly fast. | |
Next, the call numbers are right and import. And there we have 9,531 rows of dinosauriforme data, and lots and lots of useful columns, most of which don't mean much to me. I'm not a paleontologist, but I did read the information that came with a table, and I know some of these are. | |
So try to get a feel for what's in this data. I think I'll first look at just the count by state, so I can kind of see where in the country | |
all of these fossils were found. To do that I'm going to use JMP's distribution platform. I'm going to run distribution by state. Filter's helpful here...state...okay. And that opens | |
in a tab in the project. Now I have a data table, and I have this distribution report, all of them live inside the project window. | |
I can use this workspace tool pane to toggle between them, or I click on the tabs up top. | |
So we're starting to see the value of projects here. | |
I can order this data by count. Now I can start to see where this data is. At the bottom here, we have the states in the United States where the most paleontology digs have been located. | |
Wyoming, Montana, and New Mexico. Those all sound like dinosaury places, this archtypical hot dry barren plains from, you know, the opening scene in Jurassic Park. | |
I am surprised by how few there are in the Dakotas though. What really surprises me is Florida. I don't think of Florida as being a particularly | |
dinosaury place. It's very wet and it's very low lying, I think that | |
most of the state is like 10 meters above sea level or something. | |
So that surprises me. | |
I'd like to know more. | |
To get a little bit better picture of where things are, I can create a map of where each of the finds have been and maybe what kind of fossils were found there. | |
To do that I'm going to launch Graph Builder. It shows up in a separate tab. And I am going to | |
graph latitude by longitude. Again these filters, new in JMP 16, are super useful. Graph latitude by longitude, just showing the points. | |
I want to put a background map, so I can see the state boundaries. | |
JMP comes with several of these pre included, including this one. There we go. Maybe zoom in on this a little bit with the magnifier tool. | |
And then I'd like to color by class, get a broad generalization of what sorts of things were found were. | |
Now done. | |
Maybe zoom in a little bit more. | |
Focus. | |
And I can already see the answer to the Florida question I had earlier, because all of the dinosaurs in Florida, | |
they're all aves, or birds. | |
Whereas | |
your... | |
whereas your saurishcia and ornithischia (those words are...I still struggle to pronounce them after all this time) there's more found in the center of the country where we think more of the typical dinosaur find places. | |
So that's... | |
that's already pretty useful. | |
But to really appreciate JMP's data discovering abilities, we have to remember that everything is linked. So it'd be helpful if we could see both the data, the distribution and the map, all the same time and interact with them together. | |
Projects makes this really easy. I just take the distribution, grab it, drag it over to the side...there we are. | |
Close that. Size this slightly. | |
Then I'm going to take my map, I'm going to drag it to the top, just like that, and now, | |
I can see the map, the data table, and | |
the distribution all together at once. | |
And if I want to know about a certain... | |
certain state's dinosaurs, for example, I can click on it in here and follow it in there. | |
Let's try that with, say, Utah. | |
Now Utah is a state with a lot of dinosaur finds. It also contains something called Dinosaur National Monument, which I have fond memories of going to as a kid, | |
where they have this neat little visitors center that's actually built into the side of the rockface where the fossils were found. So you can go in and see the dinosaur fossils | |
in their natural habitat, as it were. | |
So I can look at this and I can start to see the kinds of fossils that are found, and certainly clustered, in the southern areas of the state where it's hot and dry. Not match up in the north, where all the ski slopes are. | |
But I also see something else that troubles me a little bit. | |
This point here is coded as being in Utah, | |
but it doesn't really look like it's in Utah at all. It's clear out in Arizona so something's wrong. Maybe the data is coded wrong that PBDB, maybe I misunderstood exactly what that state column means or maybe something else. | |
I can click on the row here and then down in the data table, it will be selected if I go to rows, next selected, | |
scroll straight to them. | |
I can look at this a little bit. It's sort of different of...there's the same guy, found both of the other...doesn't tell me anything. | |
Latitude and longitude. | |
County, though, is the same as up here, so it may be that the state and county are right, but the actual latitude and longitude are wrong. | |
I'm not sure. That warrants some further investigation, but for now, I'm just going to hide and exclude those rows from my analysis since they seem to be problematic, and I can come back later | |
and investigate what's wrong with them. | |
That's looking pretty good. | |
file, save project, it's going to ask you for a file name. | |
I'm going to say dinosaurs, but I can't really spell that, so just change to dinosjmpprj, save and that's it. You're done. | |
Saving a project in JMP 16 is a one-click operation. The data table, the reports, and the layout of them on the screen have all been saved into | |
this project file, which I just saved. And now I can leave this for as long as I want and five seconds or five months later, I can come back to it, reload this, and everything comes back right where I left it off. | |
It's one of the | |
very powerful features of projects, it's the ability to save your work whenever you want and come back to it whenever you want. | |
So, how does that work? Well since project goes out and saves everything in the appropriate place, depending on the type of thing that it is. These reports, it saves that as JSL, puts that in the project file. | |
The data tables, it depends on whether the table has been saved yet and, if so, where. | |
Right now, this dinosauriformesUSA data table isn't saved anywhere. We imported it, and then we just left it as a new unsaved table. | |
When we save a project containing a new unsaved file, JMP saves automatically to a secret location in the project file and then, when we reopen the project, it stores it back to the new unsaved state. | |
Returns to the same same state it was in when we saved the project. | |
However, since this is a very important data table in this project, we probably do want to actually save it at some point, if for no other reason than that would allow us to restore to a saved state if we make a change to the data that we later regret doing. | |
To save a data table in the project, you select data table, and you can use the menu here, or you can use file save. | |
And now we get a dialogue that's new in JMP 16 because the projec...because JMP is going to ask us where we want to save the table to. | |
This default location, project contents, | |
is a reference to the files and folders that are saved inside the project file itself. | |
Anything we save here will be embedded in the project file when the project is saved. | |
Which is what I'd like to do with the dinosaur table, but I just use the default location, file name is fine, hit save and it shows up here in the project contents. If I save the project again, everything is written to disk in that way. | |
This project contents path, it shows me an always available view of everything that I have saved inside the project. | |
I can create folders in here, | |
like original data, and I might move my csv file into that folder. There it is. Now it's gone. So I can use this area, just like I would use a location folder on on my disk somewhere, but everything I put here becomes part of the project. Project, close it out. Now I have | |
this file with | |
that saved file in it. | |
Of course there's just this one data table at the moment, but maybe | |
for larger projects, I'll often want to have more than one table and that's perfectly fine in JMP. | |
Maybe I want to look at dinosaurs in North Carolina where I live. | |
I could look into whether any of those are still | |
able to be visited. We could take my kids there. Find North Carolina. There we are, the North Carolina dinosaurs. | |
I could go down to the data table and do table, subset by selected, | |
call this dinosauriformesNC. | |
Okay. | |
There it is. Maybe I tab this with my original data table. | |
And there I have it. I've got two data tables, one that has been saved to the project contents and one that hasn't been saved at all. I have a map in Graph Builder and a distribution. | |
Save all of that together. | |
Close it out. | |
This is where the sharing part comes in and the title of this presentation said organize and share. | |
And the reason why are we talking about sharing so much is that sharing projects is super easy, now that we have self contained projects. This one file contains everything that I need, | |
and therefore, everything anyone else needs to open and view this project. So if I, say, wanted to share it with a coworker, | |
I could just maybe | |
attach it to an email. | |
And that's it. That's everything that John needs to open my dinosaur project in this single attached file. | |
I can also use this...the self-contained projects to upload to the parties of the JMP user community and share my work with the larger JMP community. Or if I encounter a bug, I could send this project to JMP tech support and ask them to look into what went wrong and why. | |
Another thing that I like to do is make backup copies of the project, especially if I'm working with complicated scripts. | |
And I want it to return to a known state, I can take dinos and do dinos | |
version one or whatever, and now this has got all the data tables inside of it, so if I open this one, and I make a change the data table, | |
I still have my backup copy back there that I can pull back if I need to. I can even write an automated script that took this every day timestamp that and stuck on some archive somewhere. | |
The other thing | |
projects can do, of course, is open things that aren't saved in the project. You don't have to make a standalone project if you don't want to. | |
I can open a file on disk, like maybe I want to include this visitor center picture in the project. I can just open that. | |
There it is, part of my project, opened to the tab. If I save the project now, the image is just going to be referenced. I can see that it has a path and projects is just going to reference it by path. So this file here now requires this file here in order to work properly. It's no longer self contained. | |
But there are some advantages to this if, maybe I want to include a file that is really, really big. I don't want to have a copy in the project. | |
If the file is created by some external system and automatically updated every night at midnight and I want always have the latest version. | |
Or if I want multiple projects to share the same data table or same script, such that if any one of them makes a change to it, the others all get the updated version. I can have them all point to the same file somewhere on | |
my computer or a network drive somewhere. It's really up to you how you work with projects. You can find the pattern and, kind of, the way that makes the most sense for | |
how you use JMP and the thing that solve the problems that you run into. | |
I think we're | |
very close to out of time, but I will show off just a few more things quickly that you can look into | |
on the JMP website or other resources for more information. One is the project bookmarks. It's another useful tool pane over here. | |
And this works just like bookmarks would in a web browser or other system in that I can make links to files that maybe aren't always open. | |
I can bookmark a file on disk or I can bookmark a file from the project contents and that that will just be there as a quick link way of opening that file in the future if I want to | |
have access to it, but not always have it open. | |
Also, a project log pane, which I can use to see log messages generated by the project contents of...that is, by the all the things open in the project. | |
This is especially useful for scripters | |
and activities that generate lots of log messages that I care about. | |
And lastly, in JMP 16 we have a | |
setup JMP preferences to allow you to customize how you use projects and how projects appear to you. | |
These first two could allow you to automatically create projects when JMP opens or automatically create a project around a file that you might open that is in a project. | |
Here you can decide what you...what you want the default project to look like, what tool panes you want to appear. And this one, | |
I'm quite proud of. The project template allows you to create a project, save it to disk, and tell JMP that every time I do file new project, I want a copy of that project to show up as my | |
new blank project. So if you have certain files that you or your organization uses all the time and you'd like every project you start to have that file open | |
or maybe just that file bookmarked so you can get access to it quickly, you can create a project template, point JMP to it, and then every new project that you start will contain those files or those bookmarks or maybe just the layout of the windows and panes that you prefer. | |
That is about all I've got. This is normally where I'd pause for questions, but since this is pre recorded, | |
I'll just issue this invitation instead. If you have any questions, comments, feature suggestions or bug reports on projects, | |
please feel free to reach out to me directly. Again, my name is Aaron Andersen. During or after the Conference or, and especially in the case of bug reports, talk to my friendly colleagues at JMP tech support. | |
Lastly, I will note that the project we just built here, dinosauriformes.jmpprj, is included in JMP 16 as a sample project. | |
So if you'd like to continue looking into this, figure out what's wrong with those Utah but not Utah rows, | |
or if you'll visit the United States in the near future and you'd like to see if there are any dinosaurs that have been found in the area where you will be, you can find this project in the JMP 16 sample projects folder. | |
Thank you for coming. I hope you have a good time at the rest of the conference. Best wishes and good night. |