Selecting which kernel(s) to use is easy in some cases, and more difficult in others. If uncertain how to proceed you might begin by reading the tutorial named 34_naif_server (PDF).
The text below is rather long but it could help you in your kernel selection.
No matter which category of kernels you're looking at, and no matter what kernel type(s), be aware of how your selection(s) and loading order(s) will affect data priority when there are "competing data." Refer to the chart named "Kernel Precedence Rule" in the tutorial named 12_intro_to_kernels (PDF) for further information about precedence.
Selecting Archived Kernels
If you are able to use kernels already archived at NAIF, the facilities for obtaining and using those offered under the link named PDS Archived SPICE Data Sets should work well for you; quite possibly you'll not need to make further decisions about kernel selection. However, you should carefully read the documentation provided with the archive bundle to see if what is described meets your needs. Be aware that these archives generally end six to nine months behind current time! In addition, you should consider if the possible release of generic kernels produced after the archive was made might affect your work, and if so, look into the existence of any such updates. Examples are: a newer satellite ephemeris kernel (SPK), a newer planetary constants kernel (PCK), or a newer digital shape kernel (DSK).
Selecting from Generic Kernels or Mission Operations Kernels
If you need (or think you need) to obtain one or more mission operations kernels, or a generic kernel not included in an archive bundle, you've got more work to do.
Be aware that there is almost always some metadata available to help you understand the provenance and intended use of any particular kernel. Many kernel folders contain an "aareadme" file that describes the kernel naming schema. Text kernels almost always contain internal descriptive documentation embedded with the data—you can read this by simply opening the text kernel; click on the file name in your browser or open the file in any word processor or text display utility. Binary kernels should contain embedded metadata, but this can be seen only by downloading the kernel and then using the SPICE Toolkit "commnt" utility made specifically for displaying "comments" within a binary kernel. (Sometimes those same comments are provided in a companion label file, typically having a file extension of *.lbl.) For SPK and the special binary PCK kernels, the utility named "brief" can be used to summarize the contents and time coverage of the kernel. Similarly, for CKs the "ckbrief" utility provides contents and coverage information, and the utility named "dskbrief" does the same for DSKs.
Selecting Generic Kernels
For the leapseconds (LSK) and planetary constants (PCK) kernels, and for a number of other specialty kernels such as tracking station SPKs and FKs, there is often just a single version available. (Sometimes older versions are provided in a folder having the name "older versions.")
The NAIF server usually contains more than one generic planetary ephemeris kernel (SPK), having name style "dexxx.bsp." Read the "aareadme" file to help choose the correct one for your use. Usually the file with the greatest "xxx" is the latest and best for general users. Be aware of two oddities. First, any planet ephemeris file contains data ONLY for the planet system's barycenter for those planets having satellites. The location of the planet itself is found in any of its satellite ephemeris files. (Exception, the locations of Mercury and Venus are found in any planet ephemeris file.) Second, the ephemeris for earth's moon is provided within a planet ephemeris kernel. (Don't ask... that's just the way things are!) Also be aware that Pluto is still treated as a planet for SPICE ephemeris purposes.
Ephemeris data for natural satellites of the planets Mars through Pluto, and for those planets themselves, are provided in a collection of satellite ephemeris kernels (SPK). In the top level satellite ephemeris folder you will find one or more satellite ephemeris kernels for each of these six planetary systems. Only the latest such kernels are present in this directory—older versions are found in an "a_old_versions" folder one level down. Each of these folders contains three kinds of summaries for the kernels contained therein.
The NAIF server has ephemeris kernels for a few comets and asteroids. These tend to be rather old; in most cases you'd do best to manually create your own SPK(s) for comets or asteroids of interest to you using JPL's on-line Horizons Ephemeris System. A Horizons telnet service is also available, for use in automated (programmatic) generation of SPKs: telnet ssd.jpl.nasa.gov 6775
- "aa_summaries" provides a summary of the contents and time coverage for each spk—this is probably the most useful of the three summaries
- "aa_spk_production_dates_by_alpha" provides an alphabetized listing of all the spks present, including the date each file was placed in the folder
- "aa_spk_production_dates_by_date" provides a time-ordered listing of all the spks present, including the date each file was placed in the folder
An "aareadme" file at the top level of the generic kernels collection (https://naif.jpl.nasa.gov/pub/naif/generic_kernels) provides information about the other kinds of generic kernels available.
Selecting Mission Operations Kernels
Selecting one or a few mission operations kernels to meet a specific need is likely to be somewhat difficult. It's best if you are somewhat familiar with the mission, and even with the kinds and circumstances of kernel generation. Usually each kernel type folder contains an aareadme file (it may be buried in the middle or found at the bottom of the directory listing) describing the types of kernels present and the kernel naming schema used. For binary kernels, download the kernel(s) that seem of interest and use the various SPICE utility programs (brief, ckbrief, commnt, spacit) to find out more about the kernel(s). For text kernels, just click on the kernel name and read the embedded descriptive comments inside the kernel.