Finding the help you need

Generally, you should follow the three step process described below when you run into a problem using Monte. It may seem tedious as you're just starting out, but working your problem as described is the quickest and surest way to mastering Monte.

Check the documentation

All new users are encouraged to work through the introductory material ( Introduction, Writing Scripts, and Core Concepts) on the home page. This will give you a solid footing in some of the most critical Monte concepts, and will allow you to more easily understand more advanced applications of Monte.

The first time you use a new Monte system, you are encouraged to read about that system in the Monte In-Depth section. This should provide you with the names of the Monte classes relevant to that system, and an overview of how they work together to solve problems. For instance, the first time you attempt to set up a non-trivial trajectory integration, reading through the Integrated Trajectories and Equations section will show you how to properly configure your force models, set up the integrator, run the propagation interactively, etc.

Once you know the class names that you will be using, you can go into the reference documentation for detailed information on how to use the classes. The classes can be easily found by either searching on their name in the Monte searchbar, or looking them up alphabetically in the index.


email

If you're unable to solve your problem via the documentation, it's very possible you've encountered a bug. You can file a bug by sending an email to mdn_software@jpl.nasa.gov . Some guidelines when reporting a bug:

  1. Prefix the email subject with 'BUG: ' (no quotes).

  2. Try and include as much detail about the problem as possible, including any error messages and the machine and operating system.

  3. Be sure to specify the version of Monte you are running. The output of mpython --version is ideal.

  4. If possible, include some short scripts that highlight the problem.

Frequently Asked Questions

  1. How do I read a Monte error message?

  2. What is a good website for general programming questions and tips?

  3. Why is Monte written in Python (instead of some other language)?

  4. What is the difference between Monte and the standard Python language?


How do I read a Python / Monte error message?

Python error messages (and Monte error messages) are structured in three sections. The very top of the error message tells you where in the failed application the error occurred (green below). The next section traces down the stack of called functions to the actual origin of the error (red). Finally, there is a description of the actual error at the very bottom, along with the error type (yellow, error type in this case is "ValueError").

_images/Help_FAQerrorMsg.png

So how can you use this information to track down your error? Well, usually the first step is to read the description of the error from the bottom of the message. In this case "can not convert string to float: h", doesn't seem very useful (of course you can't convert the letter "h" to a float!), but often times this description will have very helpful information. One piece of information that is useful is that the error seems to be color related - it occurred in a module called "colors.py", in function named "to_rgba", so it sounds like it could be an error in some kind of color conversion. Next we go to the line in our script that actually triggered the error. Here we see that ax.scatter is trying to plot data, and it is specifying a color that seems dicey (is chrome even a color)? Indeed, this is the source of the error and changing the color specification to something more reasonable (red) resolves the issue.

What is a good website for general programming questions and tips?

Stackoverflow is an excellent Q/A site for general programming questions. However, since Monte is a JPL proprietary software package, you won't find any tips concerning Monte there.

Why is Monte written in Python (instead of some other language)?

The core libraries of Monte are written in C++ for speed. They are wrapped and presented to the user in Python for usability, and also because of the wide variety of excellent, interoperable Python packages available for use along side Monte (like matplotlib, pandas, NumPy / SciPy, etc).

What is the difference between Monte and the standard Python language?

Monte is a standard Python package, and can be used in conjunction with the entire standard library and any other standard 3rd party Python package.