Philando Castile in an undated photo. Facebook

Ramsey County Attorney John Choi announced Wednesday that he has charged police officer Jeronimo Yanez in the July 6 killing of Philando Castile during a traffic stop in Falcon Heights.

Yanez is charged by the Ramsey County Attorney's Office with second-degree manslaughter and two felony counts for dangerous discharge of a firearm near the passengers in the car at the time of the shooting.

"I know my decision will be difficult for some in our community to accept, but in order to achieve justice we must be willing to do the right thing no matter how hard it may seem," Choi said while announcing the charges.

Castile, a 32-year-old school cafeteria supervisor, was shot by Yanez after he was pulled over during a traffic stop in Falcon Heights on the night of July 6.

Minnesota law justifies the use of deadly force by a police officer, Choi said, only when it's necessary to protect the officer or others from great bodily harm or death. He said the use of Yanez's use of force was not justified.

John Thompson, left, speaks to the media about the decision to charge the officer involved in the shooting of Castile, as Corydon Nilsson, right, embraces Jason Sole, center. Evan Frost | MPR News

Choi said he didn't think it would be right to ask a grand jury to decide the issue, when "I know in my heart what needs to be done."

During the announcement of the charges, Choi went over the timeline leading up to Castile's death. He said Yanez signaled to another officer that he was pulling Castile's car over because his "wide-set nose" matched the description of a robbery suspect.

Yanez turned on his squad lights, and Castile pulled over eight seconds later. It was just one minute later that Yanez shot Castile seven times, killing him.

Castile handed over his insurance card and "calmly" told Yanez that he had a firearm. Yanez said, "OK, don't reach for it then." Castile told Yanez he wasn't pulling out the gun. Yanez screamed, "Don't pull it out," and took his firearm out of the holster. He fired.

Ramsey County Attorney John Choi announced that he has charged police officer Jeronimo Yanez on Wednesday. Tim Nelson | MPR News

"Officer Yanez pulled his left arm out of the car and then fired seven shots in rapid succession into the vehicle," Choi said. "Philando Castile moaned and said his final words, 'I wasn't reaching for it.' "

"No reasonable officer, knowing, seeing and hearing what Officer Yanez did at the time, would have used deadly force under these circumstances," Choi said. "The totality of the circumstances indicate that Officer Yanez's use of deadly force against Philando Castile during the July 6 death was not necessary, was objectively unreasonable and was inconsistent with generally accepted police practices."

St. Anthony police service area William Lager | MPR News graphic

DFL Gov. Mark Dayton praised Choi's work in a statement released Wednesday.

"Today's announcement by Ramsey County Attorney John Choi is an important step toward the determination of justice in this awful tragedy," the statement read. "I commend the County Attorney for his careful review; the judicial process must now resolve the proper outcome."

Investigators on the scene of the police shooting on July 7. Tim Nelson | MPR News

MPR News analysis: Black drivers bear brunt of citations from routine stops by St. Anthony PD

The aftermath of the shooting was captured and streamed live on Facebook by Castile's girlfriend, Diamond Reynolds, who was a passenger in the car. She said that Yanez shot Castile several times while he reached for his ID, and that Castile had told the officer he had a legal gun permit and was armed. The Facebook video attracted attention around the world.

Larry Rogers Jr., Reynolds' attorney, said her account of Castile's killing warranted more harsh charges against Yanez.

"We do believe they supported murder charges because there was absolutely no provocation on the part of Philando," Rogers said, "absolutely no provocation to justify what happened."

John Thompson, center, a friend of Philando Castile's, reacts to John Choi's announcement. Evan Frost | MPR News

Rogers said Reynolds is committing to ensuring that Yanez is convicted, and is willing to testify at the trial. "Our role will be to do what we can to assist in ensuring that justice is served through a conviction," he said. "I strongly suspect Diamond will need to be a witness at the trial and will definitely tell the truth and cooperate as she has since Day One."

Family members of Philando Castile say they're pleased with the Ramsey County attorney's decision to file charges against Yanez.

Philando Castile's mother, Valerie Castile, thanked those who have organized protests in Castile's name. But she said the family doesn't want anything to distract from the prosecution of Yanez.

"It's important for everybody to understand that we want peace. We don't want any protests to get outrageous," Valerie Castile said. "And I support protests, but it's a manner to get things done."

The Castile family's attorney, Glenda Hatchett, said the family hopes the case will send a message across the country that killings of citizens by police must be treated differently.

Castile's death came on the heels of other prominent killings of African-American men by police, including the shooting death of 24-year-old Jamar Clark in north Minneapolis last year. The deaths have fueled protests in Minnesota and across the country. Protesters have called for police to be prosecuted for their roles in the deaths.

Protesters gathered quickly across the street from where Philando Castile was killed on July 7 when a video of the aftermath of the shooting appeared on Facebook and drew many to the scene after they saw it. Christopher Juhn for MPR News

In late September, the Bureau of Criminal Apprehension completed its investigation into the case and turned over its findings to Choi for review of possible charges.

Protesters also demanded that Choi turn the case over to a special prosecutor. But Choi decided to keep the case in his office and brought in an outside attorney.

The Minnesota Police and Peace Officers Association disagreed with Choi's decision to charge Yanez.

"We expect that Officer Yanez will enter a plea of Not Guilty and will fully litigate every issue within the case in a court of law," the group said in a statement. "No one can speak for Officer Yanez as to what he actually encountered and what he feared that evening."

Police officers rarely prosecuted

Despite the hundreds of times police officers shoot and kill people while on duty, it's rare they face murder or manslaughter charges. In many cases, state laws and court decisions have justified officers in using deadly force.

Ex-FBI agent Larry Brubaker, who has researched and written two books on fatal officer-involved shootings that have occurred in Minnesota, said this is the first time an officer has been charged for a fatal shooting in Minnesota in more than 200 cases that spanned over three decades.

Police secure evidence at the shooting scene on Larpenteur Avenue in Falcon Heights, where Philando Castile was shot by a St. Anthony police officer. Christopher Juhn for MPR News

According to a database created by Phil Stinson, an associate professor of criminology at Bowling Green State University in Ohio, police officers across the country shoot and kill people 900 to 1,000 times a year.

Stinson found that over the past 12 years, 77 officers were charged with murder or manslaughter. Of those 77 officers, 27 have been convicted.

"We see in some of these cases even with video evidence, it does not ultimately result in an officer being convicted, especially in jury trial situations," Stinson said. "Juries are very reluctant to find a police officer guilty of murder or manslaughter. They want to believe that police officers are the good guys."

In the Castile case, some of the video evidence came from the Facebook live stream.

"The video evidence is paramount, it's absolutely crucial in this case," Stinson said. "I don't think in this case and in many others that an officer would be charged without the video evidence."

Choi emphasized during the press conference that Yanez will still need to go to trial, and that he's still considered innocent until proven guilty.

The Rev. Danny Givens, who has helped organize protests against police killings, said the charges are evidence that protests have been working.

"Of course protest makes a difference. History has shown us that," Givens said. "We're taking the issues of justice out to the streets to be heard by all." He said the "culture of policing" is being challenged.

Senior Cmdr. John Lozoya of the St. Paul police, a member of the Minnesota Latino Peace Officers Association, said his main concern is that Yanez gets a fair trial.

"All I just ask is that the public wait until the trial's over where he is judged by his peers and that he has received a fair and impartial trial," Lozoya said.

People who had called for charges against the officer who shot Castile mournfully greeted Choi's decision.

A group of about 10 people gathered in the lobby of Choi's office, watching on their phones as Choi announced his decision to charge Yanez. John Thompson, a friend of Castile's, broke into tears at the news.

"It's a good day, but it's a sad day, because now we have to see this all over again," Thompson said. "I was prepared for him to say that 'There's no grand jury, there's not charges against Yanez.' I kind of prepare for the worst, hope for the best. The best happened today."

A statement posted online by the city of St. Anthony said city officials are confident that justice will be served in the case.

"Out of respect for the judicial process, the City intends to refrain from making any comments that could hinder a fair and impartial determination," according to St. Anthony's statement. "We reaffirm our commitment to help heal this painful community experience through community engagement and continuous efforts to create positive change."

The city of Falcon Heights also released a statement saying officials would continue to review law enforcement procedures and explore whether to adopt body cameras for officers.